1+ ### SUBSTRAIT_AGGREGATE_TEST: v1.0
2+ ### SUBSTRAIT_INCLUDE: '/extensions/functions_arithmetic.yaml'
3+
4+ # basic: Basic examples without any special cases
5+ ((1.0, 2.0, 3.0, 4.0, 5.0)) variance(col0::fp32, SAMPLE::enum) = 2.5::fp32
6+ ((1.0, 2.0, 3.0, 4.0, 5.0)) variance(col0::fp64, SAMPLE::enum) = 2.5::fp64
7+ ((1.0, 2.0, 3.0, 4.0, 5.0)) variance(col0::fp32, POPULATION::enum) = 2.0::fp32
8+ ((1.0, 2.0, 3.0, 4.0, 5.0)) variance(col0::fp64, POPULATION::enum) = 2.0::fp64
9+
10+ # uniform_values: Variance of uniform values
11+ ((5.0, 5.0, 5.0, 5.0)) variance(col0::fp32, SAMPLE::enum) = 0.0::fp32
12+ ((5.0, 5.0, 5.0, 5.0)) variance(col0::fp64, POPULATION::enum) = 0.0::fp64
13+
14+ # single_value: Variance with single value
15+ ((42.0)) variance(col0::fp32, SAMPLE::enum) = Null::fp32
16+ ((42.0)) variance(col0::fp64, POPULATION::enum) = 0.0::fp64
17+
18+ # negative_values: Variance with negative values
19+ ((-5.0, -3.0, -1.0, 1.0, 3.0, 5.0)) variance(col0::fp32, SAMPLE::enum) = 15.166667::fp32
20+ ((-5.0, -3.0, -1.0, 1.0, 3.0, 5.0)) variance(col0::fp64, SAMPLE::enum) = 15.166666666666666::fp64
21+ ((-10.0, -5.0, 0.0, 5.0, 10.0)) variance(col0::fp32, POPULATION::enum) = 50.0::fp32
22+ ((-10.0, -5.0, 0.0, 5.0, 10.0)) variance(col0::fp64, POPULATION::enum) = 50.0::fp64
23+
24+ # decimal_precision: Variance with decimal values
25+ ((1.5, 2.5, 3.5, 4.5, 5.5)) variance(col0::fp32, SAMPLE::enum) = 2.5::fp32
26+ ((1.5, 2.5, 3.5, 4.5, 5.5)) variance(col0::fp64, SAMPLE::enum) = 2.5::fp64
27+ ((0.1, 0.2, 0.3, 0.4, 0.5)) variance(col0::fp64, POPULATION::enum) = 0.020000000000000004::fp64
28+
29+ # large_values: Variance with large values
30+ ((1000.0, 2000.0, 3000.0, 4000.0, 5000.0)) variance(col0::fp32, SAMPLE::enum) = 2500000.0::fp32
31+ ((1000.0, 2000.0, 3000.0, 4000.0, 5000.0)) variance(col0::fp64, SAMPLE::enum) = 2500000.0::fp64
32+
33+ # small_values: Variance with small values
34+ ((0.001, 0.002, 0.003, 0.004, 0.005)) variance(col0::fp64, SAMPLE::enum) = 0.0000025::fp64
35+ ((0.001, 0.002, 0.003, 0.004, 0.005)) variance(col0::fp64, POPULATION::enum) = 0.000002::fp64
36+
37+ # null_handling: Examples with null as input or output
38+ ((Null, Null, Null)) variance(col0::fp32, SAMPLE::enum) = Null::fp32
39+ (()) variance(col0::fp32, SAMPLE::enum) = Null::fp32
40+ ((1.0, Null, 3.0, Null, 5.0)) variance(col0::fp32, SAMPLE::enum) = 4.0::fp32
41+ ((1.0, Null, 3.0, Null, 5.0)) variance(col0::fp64, POPULATION::enum) = 2.666666666666667::fp64
42+
43+ # rounding: Examples with different rounding modes
44+ ((1.1, 2.2, 3.3, 4.4, 5.5)) variance(col0::fp32, SAMPLE::enum) [rounding:TIE_TO_EVEN] = 3.03::fp32
45+ ((1.1, 2.2, 3.3, 4.4, 5.5)) variance(col0::fp64, SAMPLE::enum) [rounding:TRUNCATE] = 3.0299999999999994::fp64
46+
47+ # two_values: Variance with two values
48+ ((10.0, 20.0)) variance(col0::fp32, SAMPLE::enum) = 50.0::fp32
49+ ((10.0, 20.0)) variance(col0::fp64, POPULATION::enum) = 25.0::fp64
50+
51+ # mixed_range: Variance with mixed range values
52+ ((0.0, 100.0, 50.0, 25.0, 75.0)) variance(col0::fp32, SAMPLE::enum) = 1681.25::fp32
53+ ((0.0, 100.0, 50.0, 25.0, 75.0)) variance(col0::fp64, POPULATION::enum) = 1345.0::fp64
54+
55+ # zero_mean: Variance with values around zero
56+ ((-2.0, -1.0, 0.0, 1.0, 2.0)) variance(col0::fp32, SAMPLE::enum) = 2.5::fp32
57+ ((-2.0, -1.0, 0.0, 1.0, 2.0)) variance(col0::fp64, POPULATION::enum) = 2.0::fp64
58+
59+ # three_values: Variance with three values
60+ ((10.0, 20.0, 30.0)) variance(col0::fp32, SAMPLE::enum) = 100.0::fp32
61+ ((10.0, 20.0, 30.0)) variance(col0::fp64, POPULATION::enum) = 66.66666666666667::fp64
0 commit comments