Path: blob/main/crates/polars-sql/tests/functions_math.rs
6939 views
use polars_core::prelude::*;1use polars_lazy::prelude::*;2use polars_sql::*;34#[test]5fn test_math_functions() {6let df = df! {7"a" => [1.0]8}9.unwrap();10let mut context = SQLContext::new();11context.register("df", df.clone().lazy());12let sql = r#"13SELECT14a,15ABS(a) AS abs,16ACOS(a) AS acos,17ASIN(a) AS asin,18ATAN(a) AS atan,19PI() AS pi,20CEIL(a) AS ceil,21EXP(a) AS exp,22FLOOR(a) AS floor,23LN(a) AS ln,24LOG2(a) AS log2,25LOG10(a) AS log10,26LOG(a, 5) AS log5,27LOG1P(a) AS log1p,28POW(a, 2) AS pow,29SQRT(a) AS sqrt,30CBRT(a) AS cbrt31FROM df"#;32let df_sql = context.execute(sql).unwrap().collect().unwrap();33let df_pl = df34.lazy()35.select(&[36col("a"),37col("a").abs().alias("abs"),38col("a").arccos().alias("acos"),39col("a").arcsin().alias("asin"),40col("a").arctan().alias("atan"),41lit(std::f64::consts::PI).alias("pi"),42col("a").ceil().alias("ceil"),43col("a").exp().alias("exp"),44col("a").floor().alias("floor"),45col("a").log(lit(std::f64::consts::E)).alias("ln"),46col("a").log(lit(2.0)).alias("log2"),47col("a").log(lit(10.0)).alias("log10"),48col("a").log(lit(5.0)).alias("log5"),49col("a").log1p().alias("log1p"),50col("a").pow(2.0).alias("pow"),51col("a").sqrt().alias("sqrt"),52col("a").cbrt().alias("cbrt"),53])54.collect()55.unwrap();56println!("{}", df_pl.head(Some(10)));57println!("{}", df_sql.head(Some(10)));58assert!(df_sql.equals_missing(&df_pl));59}606162