### SUBSTRAIT_AGGREGATE_TEST: v1.0
### SUBSTRAIT_INCLUDE: extension:io.substrait:functions_arithmetic
# basic: Basic examples without any special cases
((1.0), (2.0), (3.0), (4.0), (5.0)) variance(SAMPLE::enum, col0::fp32) = 2.5::fp32?
((1.0), (2.0), (3.0), (4.0), (5.0)) variance(SAMPLE::enum, col0::fp64) = 2.5::fp64?
((1.0), (2.0), (3.0), (4.0), (5.0)) variance(POPULATION::enum, col0::fp32) = 2.0::fp32?
((1.0), (2.0), (3.0), (4.0), (5.0)) variance(POPULATION::enum, col0::fp64) = 2.0::fp64?
# uniform_values: Variance of uniform values
((5.0), (5.0), (5.0), (5.0)) variance(SAMPLE::enum, col0::fp32) = 0.0::fp32?
((5.0), (5.0), (5.0), (5.0)) variance(POPULATION::enum, col0::fp64) = 0.0::fp64?
# single_value: Variance with single value
((42.0)) variance(SAMPLE::enum, col0::fp32) = Null::fp32?
((42.0)) variance(POPULATION::enum, col0::fp64) = 0.0::fp64?
# negative_values: Variance with negative values
((-5.0), (-3.0), (-1.0), (1.0), (3.0), (5.0)) variance(SAMPLE::enum, col0::fp32) = 15.166667::fp32?
((-5.0), (-3.0), (-1.0), (1.0), (3.0), (5.0)) variance(SAMPLE::enum, col0::fp64) = 15.166666666666666::fp64?
((-10.0), (-5.0), (0.0), (5.0), (10.0)) variance(POPULATION::enum, col0::fp32) = 50.0::fp32?
((-10.0), (-5.0), (0.0), (5.0), (10.0)) variance(POPULATION::enum, col0::fp64) = 50.0::fp64?
# decimal_precision: Variance with decimal values
((1.5), (2.5), (3.5), (4.5), (5.5)) variance(SAMPLE::enum, col0::fp32) = 2.5::fp32?
((1.5), (2.5), (3.5), (4.5), (5.5)) variance(SAMPLE::enum, col0::fp64) = 2.5::fp64?
((0.1), (0.2), (0.3), (0.4), (0.5)) variance(POPULATION::enum, col0::fp64) = 0.020000000000000004::fp64?
# large_values: Variance with large values
((1000.0), (2000.0), (3000.0), (4000.0), (5000.0)) variance(SAMPLE::enum, col0::fp32) = 2500000.0::fp32?
((1000.0), (2000.0), (3000.0), (4000.0), (5000.0)) variance(SAMPLE::enum, col0::fp64) = 2500000.0::fp64?
# small_values: Variance with small values
((0.001), (0.002), (0.003), (0.004), (0.005)) variance(SAMPLE::enum, col0::fp64) = 0.0000025::fp64?
((0.001), (0.002), (0.003), (0.004), (0.005)) variance(POPULATION::enum, col0::fp64) = 0.000002::fp64?
# null_handling: Examples with null as input or output
((Null), (Null), (Null)) variance(SAMPLE::enum, col0::fp32?) = Null::fp32?
(()) variance(SAMPLE::enum, col0::fp32) = Null::fp32?
((1.0), (Null), (3.0), (Null), (5.0)) variance(SAMPLE::enum, col0::fp32?) = 4.0::fp32?
((1.0), (Null), (3.0), (Null), (5.0)) variance(POPULATION::enum, col0::fp64?) = 2.666666666666667::fp64?
# rounding: Examples with different rounding modes
((1.1), (2.2), (3.3), (4.4), (5.5)) variance(SAMPLE::enum, col0::fp32) [rounding:TIE_TO_EVEN] = 3.03::fp32?
((1.1), (2.2), (3.3), (4.4), (5.5)) variance(SAMPLE::enum, col0::fp64) [rounding:TRUNCATE] = 3.0299999999999994::fp64?
# two_values: Variance with two values
((10.0), (20.0)) variance(SAMPLE::enum, col0::fp32) = 50.0::fp32?
((10.0), (20.0)) variance(POPULATION::enum, col0::fp64) = 25.0::fp64?
# mixed_range: Variance with mixed range values
((0.0), (100.0), (50.0), (25.0), (75.0)) variance(SAMPLE::enum, col0::fp32) = 1681.25::fp32?
((0.0), (100.0), (50.0), (25.0), (75.0)) variance(POPULATION::enum, col0::fp64) = 1345.0::fp64?
# zero_mean: Variance with values around zero
((-2.0), (-1.0), (0.0), (1.0), (2.0)) variance(SAMPLE::enum, col0::fp32) = 2.5::fp32?
((-2.0), (-1.0), (0.0), (1.0), (2.0)) variance(POPULATION::enum, col0::fp64) = 2.0::fp64?
# three_values: Variance with three values
((10.0), (20.0), (30.0)) variance(SAMPLE::enum, col0::fp32) = 100.0::fp32?
((10.0), (20.0), (30.0)) variance(POPULATION::enum, col0::fp64) = 66.66666666666667::fp64?