# # HistogramAlgebra-Testfile # # Jan 2008, S. Hoecher, A. Belz, B. Poneleit, M. Hoeger # delete database testhistdb; #setup histogramtest HistogramAlgebra StreamAlgebra StreamExampleAlgebra # * # * Preparing the test database # * create database testhistdb; open database testhistdb; restore test1drel from '$(SECONDO_BUILD_DIR)/Tests/Testspecs/histogramalgebra/histdata1d'; restore test2drel from '$(SECONDO_BUILD_DIR)/Tests/Testspecs/histogramalgebra/histdata2d'; # * # * Create data in the test database # * let h100 = [const histogram1d value ((0.0 0.1 0.2 0.3)(1.5 1.66 1.777))]; let h101 = realstream(0.0, 1000.0, 10.0) set_histogram1d; let h102 = realstream(0.0, 10.0, 2.0) set_histogram1d; let h200 = [const histogram2d value ((0.0 0.1 0.2)(-2.0 -1.0 0.0)(18.333 24.4444 38.88888888 16.666666))]; let h201 = [const histogram2d value ((0.0 0.1 0.2)(100.0 200.0 300.0)(0.0 0.0 0.0 0.0))]; let h202 = [const histogram2d value ((-0.2 -0.1 0.0)(-300.0 -200.0 -100.0)(0.0 0.0 0.0 0.0))]; let histfine1d = realstream(-143.23, 320.0, 31.415) set_histogram1d; let histcoarse1d = realstream(-143.23, 320.0, 62.830) set_histogram1d; let histfine2d = realstream(-143.23, 320.0, 31.415) realstream(-250.0, 147.23, 31.415) set_histogram2d; let histcoarse2d = realstream(-143.23, 320.0, 62.830) realstream(-250.0, 147.23, 62.830) set_histogram2d; let h1undef = realstream(1.0, -1.0, 1.0) set_histogram1d; let h2undef = realstream(1.0, -1.0, 1.0) realstream(1.0, -1.0, 1.0) set_histogram2d; let h1use = [const histogram1d value ((-10.0 -5.0 0.0 5.0 10.0)(2.0 2.0 2.0 2.0))]; let h2use = [const histogram2d value ((-10.0 -3.5 2.3 4.5)(-4.5 -2.3 3.5 10.0)(2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0))]; let h1d1 = [const histogram1d value((-2.3 -1.0 0.3 2.4 3.9)(1.0 8.0 2.0 0.5))]; let h1d2 = [const histogram1d value((-2.3 -1.0 0.3 2.4 3.9)(1.0 8.0 2.0 0.5))]; let h1d3 = [const histogram1d value((-2.3 -1.0 0.3 2.4 3.9)(0.9 7.0 1.5 0.0))]; let h1d4 = [const histogram1d value((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.4 3.9)(0.9 7.0 1.5 0.0 0.0 7.0 1.0))]; let h1d5 = [const histogram1d value((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(0.9 7.0 1.5 0.0 0.0 7.0 1.0))]; let h1d6 = [const histogram1d value((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(0.9 0.0 1.5 0.0 0.0 7.0 0.0))]; let h1d7 = realstream(1.0, 0.0, 1.0) set_histogram1d; let h1d8 = realstream(-10000.0, 10000.0, 1.0) set_histogram1d; let h1d9 = realstream(-10000.0, 10000.0, 10.0) set_histogram1d; let h1d10 = [const histogram1d value((-2.3 3.9)(42.7))]; let h1d11 = [const histogram1d value((-2.2 -1.0 0.3 2.4 3.9)(1.0 8.0 2.0 0.5))]; let h1d12 = [const histogram1d value((-2.3 -1.0 0.3 2.4 3.95)(1.0 8.0 2.0 0.5))]; let h2d1 = [const histogram2d value((-2.3 -1.0 0.3 5.9)(0.0 2.4 3.9)(1.0 0.0 8.0 2.0 0.5 0.0))]; let h2d2 = [const histogram2d value((-2.3 -1.0 0.3 5.9)(0.0 2.4 3.9)(1.0 0.0 8.0 2.0 0.5 0.0))]; let h2d3 = [const histogram2d value((-2.3 -1.0 0.3 5.9)(0.0 2.4 3.9)(0.0 -1.0 7.0 1.0 0.45 -2.8))]; let h2d4 = [const histogram2d value((-2.3 -1.5 -1.0 0.3 1.0 5.9)(0.0 2.4 2.6 3.9)(1.0 0.0 8.0 2.0 0.5 0.0 1.0 0.0 8.0 2.0 0.5 0.0 1.0 8.0 2.0))]; let h2d5 = [const histogram2d value((-2.3 -1.5 -1.0 0.3 1.0 5.9)(0.0 2.3 2.6 3.9)(1.0 0.0 8.0 2.0 0.5 0.0 1.0 0.0 8.0 2.0 0.5 0.0 1.0 8.0 2.0))]; let h2d6 = [const histogram2d value((-2.3 -1.5 -1.0 0.3 1.0 5.9)(0.0 2.3 2.6 3.9)(1.0 0.0 8.0 2.0 0.5 0.0 1.0 0.0 8.0 2.0 0.5 0.0 1.0 8.0 2.0))]; let h2d7 = realstream(1.0, 0.0, 1.0) realstream(1.0, 0.0, 1.0) set_histogram2d; let h2d8 = realstream(-1000.0, 1000.0, 1.0) realstream(-1000.0, 1000.0, 2.0) set_histogram2d; let h2d9 = realstream(-1000.0, 1000.0, 5.0) realstream(-1000.0, 1000.0, 10.0) set_histogram2d; let h2d10 = [const histogram2d value((-2.3 5.9)(0.0 3.9)(0.0))]; let h2d11 = [const histogram2d value((-8.4 -3.2 0.0 0.85 34.9 710.3 712.0)(-42.0 8.12 14.0 16.5 24.0 52.1)(0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0))]; #let h2d12 = realstream(0.0, 10000.0, 1.0) realstream(0.0, 10000.0, 1.0) set_histogram2d; let h2covar = intstream(1, 100000) use[ fun(i1:int) rng_gaussian(0.75) ] transformstream create_histogram2d_equiwidth[Elem, Elem, 10, 10] let h2covar2 = realstream(-10.0, 10.0, 0.0600) transformstream {a} realstream(-20.0, 0.0, 0.0600) transformstream {b} product create_histogram2d_equicount[Elem_a, Elem_b, 10, 10] let h2covar3 = realstream(-10.0, 10.0, 0.0600) transformstream {a} realstream(-20.0, 0.0, 0.0600) transformstream {b} product create_histogram2d_equicount[Elem_b, Elem_a, 10, 10] let h2covar4 = realstream(-3500.0, 3500.0, 0.031425926) transformstream {a} realstream(-1112.5, 1400.0, 423.43) transformstream {b} product create_histogram2d_equiwidth[Elem_a, Elem_b, 120, 30] let h2covar5 = realstream(-3500.0, 3500.0, 0.031425926) transformstream {a} realstream(-1112.5, 1400.0, 423.43) transformstream {b} product create_histogram2d_equiwidth[Elem_b, Elem_a, 30, 120] # * # * Test cases written in this pattern: # * # TESTCASE # YIELDS (either expected result type or expected result or just "error") # exactly one query # * # * functions In() and Out() # * #testcase h1dQueryTestcase #yields (histogram1d ((0.0 0.1 0.2 0.3)(1.5 1.66 1.777))) query h100; #testcase h2dQueryTestcase #yields (histogram2d ((0.0 0.1 0.2)(-2.0 -1.0 0.0)(18.333 24.4444 38.88888888 16.666666))) query h200; #testcase h1dUnsortedRangesTestcase #yields error let h10x = [const histogram1d value ((0.0 -0.1 0.2 -0.3)(1.5 1.66 1.777))]; #testcase h2dUnsortedRangesTestcase #yields error let h10x = [const histogram1d value ((0.0 -0.1 0.2 -0.3)(5.0 6.0 7.0)(1.5 1.66 1.777 7.7777777 8.888888888888 9.9999999999999999))]; #testcase h1dNotOnlyRealValuesTestcase #yields error let h10x = [const histogram1d value ((0.0 1 2 3)(A 1.66 1.777))]; #testcase h2dNotOnlyRealValuesTestcase #yields error let h10x = [const histogram1d value ((0.0 0.1 0.2 0.3)(Z 6.0 7.0)(5 1.66 1.777 7.7777777 8.888888888888 9.9999999999999999))]; #testcase h1dIntegerValuesTestcase #yields error let h10x = [const histogram1d value ((0 1 2 3)(A 6 7))]; #testcase h2dIntegerValuesTestcase #yields error let h10x = [const histogram1d value ((0 1 2 3)(Z 6 7)(5 6 7 8 9 10))]; # tolerance_real %0.0001 # * # * set_histogram1d # * #testcase create_testrelSH #yields success (create testrelSH : (rel(tuple( (Attr1 int) (Attr2 real) (Attr3 real))))); (update testrelSH := ((rel(tuple( (Attr1 int) (Attr2 real) (Attr3 real)))) ( (1 -3.1 -188.5) (2 0.0 -89.0) (3 2.0 -17.23) (4 3.0 -2.0) (5 8.9 13.4) (6 10.56 16.89) (7 10.0 18.5) (8 12.7 18.5) (9 12.78 19.23) (10 20.4 20.0) (11 25.0 22.4) (12 27.56 60.89) ))); #testcase h1dSetHistogramIntstreamTestcase #yields error query intstream(1,10) set_histogram1d; #testcase h1dSetHistogramEmptyStreamTestcase #yields (histogram1d undefined) query realstream(0.0, -1.0, 1.0) set_histogram1d; #testcase h1dSetHistogramOneElemStreamTestcase #yields (histogram1d undefined) query realstream(0.0, 0.0, 1.0) set_histogram1d; #testcase h1dSetHistogramUnorderedStreamTestcase #yields (histogram1d undefined) query testrelSH feed projecttransformstream[Attr2] set_histogram1d; #testcase h1dSetHistogramStreamWithDuplicateTestcase #yields (histogram1d undefined) query testrelSH feed projecttransformstream[Attr3] set_histogram1d; #testcase h1dSetHistogramTestcase #yields (histogram1d((0.0 2.0 4.0 6.0 8.0 10.0)(0.0 0.0 0.0 0.0 0.0))) query realstream(0.0, 10.0, 2.0) set_histogram1d; # 1.000.000 calls: to execute, remove the blanks after the '#' characters # testcase h1dSetHistogramLoadTestcase # yields success # query realstream(0.0, 100000.0, 0.1) set_histogram1d; # * # * set_histogram2d # * #testcase h2dSetHistogramIntstreamTestcase #yields error query intstream(1,10) intstream(1,3) set_histogram2d; #testcase h2dSetHistogramEmptyStreamTestcase #yields (histogram2d undefined) query realstream(0.0, -1.0, 1.0) realstream(0.0, 6.0, 0.5) set_histogram2d; #testcase h2dSetHistogramEmptyStreamTestcase #yields (histogram2d undefined) query realstream(0.0, 6.0, 0.5) realstream(0.0, -1.0, 1.0) set_histogram2d; #testcase h2dSetHistogramEmptyStreamTestcase #yields (histogram2d undefined) query realstream(0.0, -1.0, 1.0) realstream(0.0, -1.0, 1.0) set_histogram2d; #testcase h2dSetHistogramOneElemStreamTestcase #yields (histogram2d undefined) query realstream(0.0, 0.0, 1.0) realstream(0.0, 6.0, 0.5) set_histogram2d; #testcase h2dSetHistogramOneElemStreamTestcase #yields (histogram2d undefined) query realstream(0.0, 6.0, 0.5) realstream(0.0, 0.0, 1.0) set_histogram2d; #testcase h1dSetHistogramUnorderedStreamTestcase #yields (histogram2d undefined) query testrelSH feed projecttransformstream[Attr2] realstream(0.0, 6.0, 0.5) set_histogram2d; #testcase h1dSetHistogramUnorderedStreamTestcase #yields (histogram2d undefined) query realstream(0.0, 6.0, 0.5) testrelSH feed projecttransformstream[Attr2] set_histogram2d; #testcase h1dSetHistogramStreamWithDuplicateTestcase #yields (histogram2d undefined) query testrelSH feed projecttransformstream[Attr3] realstream(0.0, 6.0, 0.5) set_histogram2d; #testcase h1dSetHistogramStreamWithDuplicateTestcase #yields (histogram2d undefined) query realstream(0.0, 6.0, 0.5) testrelSH feed projecttransformstream[Attr3] set_histogram2d; #testcase h2dSetHistogramTestcase #yields (histogram2d((-1.0 0.0 1.0 2.0)(8.0 8.5 9.0)(0.0 0.0 0.0 0.0 0.0 0.0))) query realstream(-1.0, 2.0, 1.0) realstream(8.0, 9.0, 0.5) set_histogram2d; # testcase h2dSetHistogramLoadTestcase # yields success # query realstream(0.0, 100000.0, 10.0) realstream(0.0, 20000.0, 10.0) set_histogram2d; # * # * is_refinement # * #testcase h1dIsRefinementTestcase #yields (bool TRUE) query is_refinement(histfine1d, histcoarse1d); #testcase h1dIsRefinementEqualTestcase #yields (bool TRUE) query is_refinement(histfine1d, histfine1d); #testcase h1dIsRefinementEqual2Testcase #yields (bool TRUE) query is_refinement(histcoarse1d, histcoarse1d); #testcase h1dIsRefinementFalseTestcase #yields (bool FALSE) query is_refinement(histcoarse1d, histfine1d); #testcase h1dIsRefinementFalse2Testcase #yields (bool undefined) query is_refinement(realstream(1.0, -1.0, 100.0) set_histogram1d, histfine1d); #testcase h1dIsRefinementFalse3Testcase #yields (bool undefined) query is_refinement(histfine1d, realstream(1.0, -1.0, 100.0) set_histogram1d); #testcase h1dIsRefinementErrorTestcase #yields error query is_refinement(histfine1d, h200); #testcase h1dIsRefinementError2Testcase #yields error query is_refinement(h200, histfine1d); #testcase h2dIsRefinementTestcase #yields (bool TRUE) query is_refinement(histfine2d, histcoarse2d); #testcase h2dIsRefinementEqualTestcase #yields (bool TRUE) query is_refinement(histfine2d, histfine2d); #testcase h2dIsRefinementEqual2Testcase #yields (bool TRUE) query is_refinement(histcoarse2d, histcoarse2d); #testcase h2dIsRefinementFalseTestcase #yields (bool FALSE) query is_refinement(histcoarse2d, histfine2d); #testcase h2dIsRefinementFalse2Testcase #yields (bool undefined) query is_refinement(realstream(1.0, -1.0, 100.0) realstream(-23.0, 350.0, 12.0) set_histogram2d, histfine2d); #testcase h2dIsRefinementFalse3Testcase #yields (bool undefined) query is_refinement(histfine2d, realstream(1.0, -1.0, 100.0) realstream(-23.0, 350.0, 12.0) set_histogram2d); #testcase h2dIsRefinementFalse4Testcase #yields (bool undefined) query is_refinement(realstream(-23.0, 350.0, 12.0)realstream(1.0, -1.0, 100.0) set_histogram2d, histfine2d); #testcase h2dIsRefinementFalse5Testcase #yields (bool undefined) query is_refinement(histfine2d, realstream(-23.0, 350.0, 12.0) realstream(1.0, -1.0, 100.0) set_histogram2d); #testcase h2dIsRefinementErrorTestcase #yields error query is_refinement(histfine2d, h100); #testcase h2dIsRefinementError2Testcase #yields error query is_refinement(h100, histfine2d); # * # * = # * #testcase h1dEqualTestcase #yields (bool TRUE) query h100 = h100; #testcase h1dEqual2Testcase #yields (bool TRUE) query histfine1d = histfine1d; #testcase h1dEqual3Testcase #yields (bool TRUE) query histcoarse1d = histcoarse1d; #testcase h1dEqual4Testcase #yields (bool TRUE) query h1undef = h1undef; #testcase h2dEqualTestcase #yields (bool TRUE) query h200 = h200; #testcase h2dEqual2Testcase #yields (bool TRUE) query histfine2d = histfine2d; #testcase h2dEqual3Testcase #yields (bool TRUE) query histcoarse2d = histcoarse2d; #testcase h2dEqual4Testcase #yields (bool TRUE) query h2undef = h2undef; #testcase h1dEqualFalseTestcase #yields (bool FALSE) query h100 = histfine1d; #testcase h1dEqualFalse2Testcase #yields (bool FALSE) query h100 = histcoarse1d; #testcase h1dEqualFalse3Testcase #yields (bool FALSE) query h100 = h1undef; #testcase h1dEqualFalse4Testcase #yields (bool FALSE) query histfine1d = h100; #testcase h1dEqualFalse5Testcase #yields (bool FALSE) query histfine1d = histcoarse1d; #testcase h1dEqualFalse6Testcase #yields (bool FALSE) query histfine1d = h1undef; #testcase h2dEqualFalseTestcase #yields (bool FALSE) query h200 = histfine2d; #testcase h2dEqualFalse2Testcase #yields (bool FALSE) query h200 = histcoarse2d; #testcase h2dEqualFalse3Testcase #yields (bool FALSE) query h200 = h2undef; #testcase h2dEqualFalse4Testcase #yields (bool FALSE) query histfine2d = h200; #testcase h2dEqualFalse5Testcase #yields (bool FALSE) query histfine2d = histcoarse2d; #testcase h2dEqualFalse6Testcase #yields (bool FALSE) query histfine2d = h2undef; #testcase h1dEqualErrorTestcase #yields error query h100 = h200; #testcase h1dEqualError2Testcase #yields error query h100 = 6; #testcase h2dEqualErrorTestcase #yields error query h200 = h100; # * # * create_histogram1d # * #testcase create_testrelCH #yields success (create testrelCH : (rel(tuple( (Attr1 int) (Attr2 real) (Attr3 real))))); (update testrelCH := ((rel(tuple( (Attr1 int) (Attr2 real) (Attr3 real)))) ( (1 0.1 188.5) (2 0.1 188.5) (3 0.1 188.5) (4 0.1 188.5) (5 0.1 188.5) (6 10.56 16.89) (7 10.0 18.5) (8 12.7 18.5) (9 12.78 19.23) (10 20.4 20.0) (11 25.0 22.4) (12 27.56 60.89) ))); #testcase h1dCreateTypeError #yields error query intstream(0, 4) transformstream create_histogram1d[Elem, h102]; #testcase h1dCreateOkTestcase #yields (histogram1d ((0.0 2.0 4.0 6.0 8.0 10.0)(2.0 2.0 1.0 0.0 0.0))) query realstream(0.0, 4.0, 1.0) transformstream create_histogram1d[Elem, h102]; #testcase h1dCreateEmptyStreamDontMatterTestcase #yields (histogram1d ((0.0 2.0 4.0 6.0 8.0 10.0)(0.0 0.0 0.0 0.0 0.0))) query realstream(1.0, 0.0, 1.0) transformstream create_histogram1d[Elem, h102]; #testcase h1dCreateNegativeValuesTestcase #yields (histogram1d ((0.0 2.0 4.0 6.0 8.0 10.0)(0.0 0.0 0.0 0.0 0.0))) query realstream(-10.0, -5.0, 1.0) transformstream create_histogram1d[Elem, h102]; #testcase h1dCreateEqualValuesTestcase #yields (histogram1d ((0.0 2.0 4.0 6.0 8.0 10.0)(5.0 0.0 0.0 0.0 0.0))) query testrelCH feed head[5] create_histogram1d[Attr2, h102]; #testcase h1dCreateOneNegativeValueTestcase #yields (histogram1d ((0.0 2.0 4.0 6.0 8.0 10.0)(0.0 0.0 0.0 0.0 0.0))) query realstream(-1.0, -1.0, 1.0) transformstream create_histogram1d[Elem, h102]; #testcase h1dCreateLoadTest #yields success query realstream(0.0, 1000.0, 0.001) transformstream create_histogram1d[Elem, h101]; # * # * create_histogram2d # * #testcase h2dCreateIntValuesTestcase #yields error query intstream(0, 10) transformstream {a} intstream(100, 110) transformstream {b} symmproduct create_histogram2d[Elem_a, Elem_b, h202]; #testcase h2dCreateOkTestcase #yields (histogram2d((0.0 0.1 0.2)(100.0 200.0 300.0)(20.0 20.0 20.0 20.0))) query realstream(0.0, 0.2, 0.05) transformstream {a} realstream(100.0, 300.0, 10.0) transformstream {b} symmproduct create_histogram2d[Elem_a, Elem_b, h201]; #testcase h2dCreateEmptyStreamDontMatterTestcase #yields (histogram2d((0.0 0.1 0.2)(100.0 200.0 300.0)(0.0 0.0 0.0 0.0))) query realstream(1.0, 0.0, 1.0) transformstream {a} realstream(1.0, 0.0, 1.0) transformstream {b} symmproduct create_histogram2d[Elem_a, Elem_b, h201]; #testcase h2dCreateNegativeValuesTestcase #yields (histogram2d((-0.2 -0.1 0.0)(-300.0 -200.0 -100.0)(20.0 20.0 20.0 20.0))) query realstream(-2.0, 0.0, 0.05) transformstream {a} realstream(-300.0, -100.0, 10.0) transformstream {b} symmproduct create_histogram2d[Elem_a, Elem_b, h202]; #testcase h2dCreateEqualValuesTestcase #yields (histogram2d((0.0 0.1 0.2)(100.0 200.0 300.0)(0.0 0.0 5.0 0.0))) query testrelCH feed head[5] create_histogram2d[Attr2, Attr3, h201]; #testcase h2dCreateLoadTest #yields success query realstream(-1000.0, 1000.0, 1.0) transformstream {a} realstream(-1000.0, 1000.0, 1.0) transformstream {b} symmproduct create_histogram2d[Elem_a, Elem_b, h2d9]; # * # * create_histogram1d_equiwidth and create_histogram2d_equiwidth # * #testcase h1dEquiWidthTestcase #yields (histogram1d ((0.0 1.0 2.0 3.0 4.0 5.0000001)(1.0 1.0 1.0 1.0 2.0))) query realstream(0.0, 5.0, 1.0) transformstream create_histogram1d_equiwidth[Elem, 5] #testcase h1dEquiWidth2Testcase #yields (histogram1d ((0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0000001)(1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0))) query realstream(0.0, 5.0, 1.0) transformstream create_histogram1d_equiwidth[Elem, 10] #testcase h1dEquiWidthUndefTestcase #yields (histogram1d undefined) query realstream(5.0, 0.0, 1.0) transformstream create_histogram1d_equiwidth[Elem, 10] #testcase h1dEquiWidth3Testcase #yields (histogram1d ((1.0 1.0000001) (1.0))) query realstream(1.0, 1.0, 1.0) transformstream create_histogram1d_equiwidth[Elem, 5] #testcase h1dEquiWidthTestcase #yields (histogram1d ((-5.0 -4.0 -3.0 -2.0 -1.0 0.0000001)(1.0 1.0 1.0 1.0 2.0))) query realstream(0.0, -5.0, -1.0) transformstream create_histogram1d_equiwidth[Elem, 5] #testcase h1dEquiWidth2Testcase #yields (histogram1d ((-5.0 -4.0 -3.0 -2.0 -1.0 0.0000001)(1.0 1.0 1.0 1.0 2.0))) query realstream(0.0, -5.0, -1.0) transformstream real(undefined) feed transformstream concat create_histogram1d_equiwidth[Elem, 5] #testcase h1dEquiWidthErrorTestcase #yields error query intstream(0, 5, 1) transformstream create_histogram1d_equiwidth[Elem, 10] #testcase h1dEquiWidthError2Testcase #yields error query intstream(0, 5, 1) create_histogram1d_equiwidth[Elem, 10] #testcase h1dEquiWidthError3Testcase #yields error query realstream(5.0, 10.0, 1.0) create_histogram1d_equiwidth[Elem, 10] #testcase h2dEquiWidthTestcase #yields (histogram2d ((-2.0 -1.2 -0.4 0.4 1.2 2.0000001)(-2.0 -1.2 -0.4 0.4 1.2 2.0000001)(1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0))) query realstream(-2.0, 2.0, 1.0) transformstream {a} realstream(-2.0, 2.0, 1.0) transformstream {b} symmproduct create_histogram2d_equiwidth[Elem_a, Elem_b, 5, 5] #testcase h2dEquiWidth2Testcase #yields (histogram2d ((-2.0 -1.2 -0.4 0.4 1.2 2.0000001)(-2.0 -1.2 -0.4 0.4 1.2 2.0000001)(1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0))) query realstream(-2.0, 2.0, 1.0) transformstream real(undefined) feed transformstream concat {a} realstream(-2.0, 2.0, 1.0) transformstream {b} symmproduct create_histogram2d_equiwidth[Elem_a, Elem_b, 5, 5] #testcase h2dEquiWidth3Testcase #yields (histogram2d ((-1.0 -0.99999899)(-1.0 -0.99999899)(1.0))) query realstream(-1.0, -1.0, -1.0) transformstream create_histogram2d_equiwidth[Elem, Elem, 5, 5] #testcase h2dEquiWidthUndefTestcase #yields (histogram2d undefined) query realstream(2.0, -2.0, 1.0) transformstream {a} realstream(-2.0, 2.0, 1.0) transformstream {b} symmproduct create_histogram2d_equiwidth[Elem_a, Elem_b, 5, 5] #testcase h2dEquiWidthUndef2Testcase #yields (histogram2d undefined) query realstream(-2.0, 2.0, 1.0) transformstream {a} realstream(2.0, -2.0, 1.0) transformstream {b} symmproduct create_histogram2d_equiwidth[Elem_a, Elem_b, 5, 5] #testcase h2dEquiWidthErrorTestcase #yields error query realstream(0.0, -5.0, -1.0) transformstream create_histogram2d_equiwidth[Elem, Val, 5, 5] #testcase h2dEquiWidthError2Testcase #yields error query instream(0, 5, 1) transformstream create_histogram2d_equiwidth[Elem, Elem, 50, 50] #testcase h2dEquiWidthError3Testcase #yields error query instream(0, 5, 1) transformstream {a} realstream(1.0, 32.3, 1.2) transformstream symmproduct create_histogram2d_equiwidth[Elem_a, Elem, 50, 50] #testcase h2dEquiWidthError4Testcase #yields error query instream(0, 5, 1) transformstream {a} realstream(1.0, 32.3, 1.2) transformstream symmproduct create_histogram2d_equiwidth[Elem, Elem_a, 50, 50] #testcase h2dEquiWidthUndef3Testcase #yields (histogram2d undefined) query realstream(0.0, -5.0, -1.0) transformstream create_histogram2d_equiwidth[Elem, Elem, -5, 5] #testcase h2dEquiWidthUndef4Testcase #yields (histogram2d undefined) query realstream(0.0, -5.0, -1.0) transformstream create_histogram2d_equiwidth[Elem, Elem, 0, 5] #testcase h2dEquiWidthUndef5Testcase #yields (histogram2d undefined) query realstream(0.0, -5.0, -1.0) transformstream create_histogram2d_equiwidth[Elem, Elem, 5, -5] #testcase h2dEquiWidthUndef6Testcase #yields (histogram2d undefined) query realstream(0.0, -5.0, -1.0) transformstream create_histogram2d_equiwidth[Elem, Elem, 5, 0] # * # * < # * #testcase h1dLessThanTestcase #yields (bool TRUE) query realstream(-10.0, 10.0, 2.0) transformstream create_histogram1d_equiwidth[Elem, 4] < realstream(-10.0, 10.0, 2.0) transformstream realstream(-10.0, 10.0, 2.0) transformstream concat create_histogram1d_equiwidth[Elem, 4] #testcase h1dLessThan2Testcase #yields (bool FALSE) query realstream(-10.0, 10.0, 2.0) transformstream create_histogram1d_equiwidth[Elem, 8] < realstream(-10.0, 10.0, 2.0) transformstream realstream(-10.0, 10.0, 2.0) transformstream concat create_histogram1d_equiwidth[Elem, 4] #testcase h1dLessThan3Testcase #yields (bool FALSE) query realstream(-10.0, 10.0, 2.0) transformstream create_histogram1d_equiwidth[Elem, 4] < realstream(-10.0, 10.0, 2.0) transformstream realstream(-10.0, 10.0, 2.0) transformstream concat create_histogram1d_equiwidth[Elem, 8] #testcase h1dLessThan4Testcase #yields (bool FALSE) query h100 < h100; #testcase h1dLessThanUndefinedTestcase #yields (bool FALSE) query realstream(120.0, 10.0, 2.0) transformstream create_histogram1d_equicount[Elem, 10] < realstream(1.0, 0.0, 1.0) transformstream create_histogram1d_equiwidth[Elem, 10] #testcase h1dLessThanErrorTestcase #yields error query h100 < h200 #testcase h2dLessThanTestcase #yields (bool TRUE) query realstream(-124.0, 125.3, 2.43) transformstream {a} realstream(-124.0, 125.3, 2.43) transformstream {b} symmproduct create_histogram2d_equiwidth[Elem_a, Elem_b, 5, 5] < realstream(-124.0, 125.3, 2.43) transformstream realstream(-124.0, 125.3, 2.43) transformstream concat {a} realstream(-124.0, 125.3, 2.43) transformstream realstream(-124.0, 125.3, 2.43) transformstream concat {b} symmproduct create_histogram2d_equiwidth[Elem_a, Elem_b, 5, 5] #testcase h2dLessThanTestcase #yields (bool FALSE) query realstream(-124.0, 125.3, 2.43) transformstream realstream(-124.0, 125.3, 2.43) transformstream concat {a} realstream(-124.0, 125.3, 2.43) transformstream realstream(-124.0, 125.3, 2.43) transformstream concat {b} symmproduct create_histogram2d_equiwidth[Elem_a, Elem_b, 5, 5] < realstream(-124.0, 125.3, 2.43) transformstream {a} realstream(-124.0, 125.3, 2.43) transformstream {b} symmproduct create_histogram2d_equiwidth[Elem_a, Elem_b, 5, 5] #testcase h2dLessThan3Testcase #yields (bool FALSE) query h200 < h200; #testcase h2dLessThanUndefinedTestcase #yields (bool FALSE) query h200 < h2undef # * # * use # * #testcase h1dUseTestcase #yields (histogram1d ((-10.0 -5.0 0.0 5.0 10.0)(1.0 1.0 1.0 1.0))) query h1use usehistogram[0.5; fun(r1: real, r2: real) r1 * r2] #testcase h1dUse5Testcase #yields (histogram1d ((-10.0 -5.0 0.0 5.0 10.0)(2.0 2.0 2.0 2.0))) query h1use usehistogram[0.5, 1.0; fun(r1: real, r2: real, r3: real) (r1 * r2) + r3] #testcase h1dUse3Testcase #yields (histogram1d ((-10.0 -5.0 0.0 5.0 10.0)(0.0 0.0 0.0 0.0))) query h1use usehistogram[; fun(r1: real) 0.0] #testcase h1dUse4Testcase #yields (histogram1d ((-10.0 -5.0 0.0 5.0 10.0)(0.0 0.0 0.0 0.0))) query h1use usehistogram[0.0; fun(r1: real, r2: real) r1 / r2] #testcase h1dUse6Testcase #yields (bool TRUE) query h1use usehistogram[;fun(r1: real) r1] = h1use; #testcase h1dUseUndefTestcase #yields (histogram1d undefined) query h1undef usehistogram[0.5; fun(r1: real, r2: real) r1 * r2] #testcase h1dUseErrorTestcase #yields error query h1use usehistogram[0.5;] #testcase h1dUseError2Testcase #yields error query realstream(1.0, 120.0, 10.0) usehistogram[0.5; fun(r1: real, r2: real) r1 * r2] #testcase h2dUseTestcase #yields (histogram2d ((-10.0 -3.5 2.3 4.5)(-4.5 -2.3 3.5 10.0)(1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0))) query h2use usehistogram[0.5; fun(r1: real, r2: real) r1 * r2] #testcase h2dUse2Testcase #yields (histogram2d ((-10.0 -3.5 2.3 4.5)(-4.5 -2.3 3.5 10.0)(2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0))) query h2use usehistogram[0.5, 1.0; fun(r1: real, r2: real, r3: real) (r1 * r2) + r3] #testcase h2dUse3Testcase #yields (histogram2d ((-10.0 -3.5 2.3 4.5)(-4.5 -2.3 3.5 10.0)(0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0))) query h2use usehistogram[; fun(r1: real) 0.0] #testcase h2dUse4Testcase #yields (histogram2d ((-10.0 -3.5 2.3 4.5)(-4.5 -2.3 3.5 10.0)(0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0))) query h2use usehistogram[0.0; fun(r1: real, r2: real) r1 / r2] #testcase h2dUseUndefTestcase #yields (histogram2d undefined) query h2undef usehistogram[0.5; fun(r1: real, r2: real) r1 * r2] #testcase h2dUseErrorTestcase #yields error query h2use usehistogram[0.5;] #testcase h2dUseError2Testcase #yields error query h2use usehistogram[; fun(r1: int) 0.0] # * # * use2 # * #testcase h1dUse2Testcase #yields (histogram1d ((-10.0 -5.0 0.0 5.0 10.0)(4.0 4.0 4.0 4.0))) query h1use h1use usehistogram2[;fun(r1: real, r2: real) r1 + r2] #testcase h1dUse22Testcase #yields (histogram1d ((-143.23 -80.4 -17.57 45.26 108.09 170.92 233.75 296.58)(962.0 1198.5 1147.5 1198.5 1147.5 1147.5 1198.5))) query realstream(-143.23, 320.0, 1.23) transformstream create_histogram1d[Elem, histfine1d] realstream(-130.2, 300.0, 2.8) transformstream create_histogram1d[Elem, histcoarse1d] usehistogram2[0.5; fun(r1: real, r2: real, r3: real) r1 * r2 + r3] #testcase h1dUse23Testcase #yields (histogram1d ((-143.23 -80.4 -17.57 45.26 108.09 170.92 233.75 296.58)(962.0 1198.5 1147.5 1198.5 1147.5 1147.5 1198.5))) query realstream(-143.23, 320.0, 1.23) transformstream create_histogram1d[Elem, histcoarse1d] realstream(-130.2, 300.0, 2.8) transformstream create_histogram1d[Elem, histfine1d] usehistogram2[0.5; fun(r1: real, r2: real, r3: real) r1 * r2 + r3] #testcase h1dUse2UndefTestcase #yields (histogram1d undefined) query h1use histfine1d usehistogram2[; fun(r1: real, r2: real) r1 + r2] #testcase h1dUse2ErrorTestcase #yields error query h1use h1use usehistogram2[; fun(r1: real, r2: int) 0.0] #testcase h1dUse2Error2Testcase #yields error query h1use h1use usehistogram2[; fun(r1: int, r2: real) 0.0] #testcase h1dUse2Error3Testcase #yields error query h1use h1use usehistogram2[; fun(r1: real, r2: real) int(0.0)] #testcase h1dUse2Error4Testcase #yields error query h1use h1use usehistogram2[; fun(r1: real) 0.0] #testcase h1dUse2Error5Testcase #yields error query h1use h1use usehistogram2[; funr(r1: real, r2: real, r3: real) 0.0] #testcase h2dUse2Tescase #yields (histogram2d ((-10.0 -3.5 2.3 4.5)(-4.5 -2.3 3.5 10.0)(4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0))) query h2use h2use usehistogram2[;fun(r1: real, r2: real) r1 + r2] #testcase h2dUse22Testcase #yields (histogram2d ((-143.23 -80.4 -17.57 45.26 108.09 170.92 233.75 296.58)(-250.0 -187.17 -124.34 -61.51 1.32 64.15 126.98)(0.0 56.0 558.0 0.0 0.0 0.0 0.0 0.0 112.5 594.0 0.0 0.0 0.0 0.0 0.0 97.5 594.0 0.0 0.0 0.0 0.0 0.0 112.5 594.0 0.0 0.0 0.0 0.0 0.0 97.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0))) query realstream(-143.23, 320.0, 1.23) transformstream create_histogram2d[Elem, Elem, histfine2d] realstream(-130.2, 300.0, 2.8) transformstream create_histogram2d[Elem, Elem, histcoarse2d] usehistogram2[0.5; fun(r1: real, r2: real, r3: real) r1 * r2 + r3] #testcase h2dUse23Testcase #yields (histogram2d ((-143.23 -80.4 -17.57 45.26 108.09 170.92 233.75 296.58)(-250.0 -187.17 -124.34 -61.51 1.32 64.15 126.98)(0.0 56.0 558.0 0.0 0.0 0.0 0.0 0.0 112.5 594.0 0.0 0.0 0.0 0.0 0.0 97.5 594.0 0.0 0.0 0.0 0.0 0.0 112.5 594.0 0.0 0.0 0.0 0.0 0.0 97.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0))) query realstream(-143.23, 320.0, 1.23) transformstream create_histogram2d[Elem, Elem, histcoarse2d] realstream(-130.2, 300.0, 2.8) transformstream create_histogram2d[Elem, Elem, histfine2d] usehistogram2[0.5; fun(r1: real, r2: real, r3: real) r1 * r2 + r3] #testcase h2dUse2UndefTestcase #yields (histogram2d undefined) query h2use histfine2d usehistogram2[; fun(r1: real, r2: real) 0.0] #testcase h2dUse2ErrorTestcase #yields error query h2use h2use usehistogram2[; fun(r1: real, r2: int) 0.0] #testcase h2dUse2Error2Testcase #yields error query h2use h2use usehistogram2[; fun(r1: int, r2: real) 0.0] #testcase h2dUse2Error3Testcase #yields error query h2use h2use usehistogram2[; fun(r1: real, r2: real) int(0.0)] #testcase h2dUse2Error4Testcase #yields error query h2use h2use usehistogram2[; fun(r1: real) 0.0] #testcase h2dUse2Error5Testcase #yields error query h2use h2use usehistogram2[; funr(r1: real, r2: real, r3: real) 0.0] # * # * no_components # * #testcase no_components #yields (int 1010000) query no_components(realstream(-10000.0, 1000000.0, 1.0) set_histogram1d); #testcase no_components_undef #yields (int undefined) query no_components(realstream(1.0, 0.0, 1.0) set_histogram1d); #testcase no_components_typeError #yields error query no_components(realstream(-10000.0, 1000000.0, 1.0) realstream(-100.0, 1000.0, 1.0) set_histogram2d); # * # * binsX # * #testcase binsX #yields (int 1010000) query binsX(realstream(-10000.0, 1000000.0, 1.0) realstream(-1.0, 1.0, 1.0) set_histogram2d); #testcase binsX_undef #yields (int undefined) query binsX(realstream(1.0, 0.0, 1.0) realstream(-100.0, 1000.0, 1.0) set_histogram2d); #testcase binsX_typeError #yields error query binsX(realstream(-10000.0, 1000000.0, 1.0) set_histogram1d); # * # * binsY # * #testcase binsY #yields (int 1010000) query binsY(realstream(-1.0, 1.0, 1.0) realstream(-10000.0, 1000000.0, 1.0) set_histogram2d); #testcase binsY_undef #yields (int undefined) query binsY(realstream(-100.0, 1000.0, 1.0) realstream(1.0, 0.0, 1.0) set_histogram2d); #testcase binsY_typeError #yields error query binsY(realstream(-10000.0, 1000000.0, 1.0) set_histogram1d); # * # * binrange_min # * #testcase binrange_min_typeError #yields error query binrange_min(h1d4, 2.5); #testcase binrange_min_typeError #yields error query binrange_min(h2d6, 2); #testcase binrange_min_typeError #yields error query binrange_min(h2d6, 2.5); #testcase binrange_min_typeError #yields error query binrange_min(h1d4, 2, 1); #testcase binrange_min_undef #yields (real undefined) query binrange_min(realstream(1.0, 0.0, 1.0) set_histogram1d, 42); #testcase binrange_min_undef #yields (real undefined) query binrange_min(h1d4, -1); #testcase binrange_min_undef #yields (real undefined) query binrange_min(h1d4, 7); #testcase binrange_min_first #yields (real -2.3) query binrange_min(h1d4, 0); #testcase binrange_min_middle #yields (real 0.3) query binrange_min(h1d4, 3); #testcase binrange_min_last #yields (real 2.4) query binrange_min(h1d4, 6); # * # * binrange_max # * #testcase binrange_max_typeError #yields error query binrange_max(h1d4, 2.5); #testcase binrange_max_typeError #yields error query binrange_max(h2d6, 2); #testcase binrange_max_typeError #yields error query binrange_max(h2d6, 2.5); #testcase binrange_max_typeError #yields error query binrange_max(h1d4, 2, 1); #testcase binrange_max_undef #yields (real undefined) query binrange_max(realstream(1.0, 0.0, 1.0) set_histogram1d, 42); #testcase binrange_max_undef #yields (real undefined) query binrange_max(h1d4, -1); #testcase binrange_max_undef #yields (real undefined) query binrange_max(h1d4, 7); #testcase binrange_max_first #yields (real -2.0) query binrange_max(h1d4, 0); #testcase binrange_max_middle #yields (real 1.8) query binrange_max(h1d4, 3); #testcase binrange_max_last #yields (real 3.9) query binrange_max(h1d4, 6); # * # * binrange_minX # * #testcase binrange_minX_typeError #yields error query binrange_minX(h1d4, 2); #testcase binrange_minX_typeError #yields error query binrange_minX(h2d6, 2.5); #testcase binrange_minX_typeError #yields error query binrange_minX(h1d4, 2.5); #testcase binrange_minX_typeError #yields error query binrange_minX(h2d6, 2, 1); #testcase binrange_minX_undef #yields (real undefined) query binrange_minX(realstream(1.0, 0.0, 1.0) realstream(1.0, 0.0, 1.0) set_histogram2d, 42); #testcase binrange_minX_undef #yields (real undefined) query binrange_minX(h2d6, -1); #testcase binrange_minX_undef #yields (real undefined) query binrange_minX(h2d6, 5); #testcase binrange_minX_first #yields (real -2.3) query binrange_minX(h2d6, 0); #testcase binrange_minX_middle #yields (real -1.0) query binrange_minX(h2d6, 2); #testcase binrange_minX_last #yields (real 1.0) query binrange_minX(h2d6, 4); # * # * binrange_maxX # * #testcase binrange_maxX_typeError #yields error query binrange_maxX(h1d4, 2); #testcase binrange_maxX_typeError #yields error query binrange_maxX(h2d6, 2.5); #testcase binrange_maxX_typeError #yields error query binrange_maxX(h1d4, 2.5); #testcase binrange_maxX_typeError #yields error query binrange_maxX(h2d6, 2, 1); #testcase binrange_maxX_undef #yields (real undefined) query binrange_maxX(realstream(1.0, 0.0, 1.0) realstream(1.0, 0.0, 1.0) set_histogram2d, 42); #testcase binrange_maxX_undef #yields (real undefined) query binrange_maxX(h2d6, -1); #testcase binrange_maxX_undef #yields (real undefined) query binrange_maxX(h2d6, 5); #testcase binrange_maxX_first #yields (real -1.5) query binrange_maxX(h2d6, 0); #testcase binrange_maxX_middle #yields (real 0.3) query binrange_maxX(h2d6, 2); #testcase binrange_maxX_last #yields (real 5.9) query binrange_maxX(h2d6, 4); # * # * binrange_minY # * #testcase binrange_minY_undef #yields (real undefined) query binrange_minY(realstream(1.0, 0.0, 1.0) realstream(1.0, 0.0, 1.0) set_histogram2d, 42); #testcase binrange_minY_undef #yields (real undefined) query binrange_minY(h2d6, -1); #testcase binrange_minY_undef #yields (real undefined) query binrange_minY(h2d6, 3); #testcase binrange_minY_first #yields (real 0.0) query binrange_minY(h2d6, 0); #testcase binrange_minY_middle #yields (real 2.3) query binrange_minY(h2d6, 1); #testcase binrange_minY_last #yields (real 2.6) query binrange_minY(h2d6, 2); # * # * binrange_maxY # * #testcase binrange_maxY_undef #yields (real undefined) query binrange_maxY(realstream(1.0, 0.0, 1.0) realstream(1.0, 0.0, 1.0) set_histogram2d, 42); #testcase binrange_maxY_undef #yields (real undefined) query binrange_maxY(h2d6, -1); #testcase binrange_maxY_undef #yields (real undefined) query binrange_maxY(h2d6, 3); #testcase binrange_maxY_first #yields (real 2.3) query binrange_maxY(h2d6, 0); #testcase binrange_maxY_middle #yields (real 2.6) query binrange_maxY(h2d6, 1); #testcase binrange_maxY_last #yields (real 3.9) query binrange_maxY(h2d6, 2); # * # * translatehistogram # * #testcase translatehistogram_1d_undef #yields (histogram1d undefined) query h1d7 translatehistogram[h1d1]; #testcase translatehistogram_1d_undef #yields (histogram1d undefined) query h1d1 translatehistogram[h1d7]; #testcase translatehistogram_1d_undef #yields (histogram1d undefined) query h1d7 translatehistogram[h1d7]; #testcase translatehistogram_1d_undef #yields (histogram1d undefined) query h1d9 translatehistogram[h1d8]; #testcase translatehistogram_1d #yields (bool TRUE) query no_components(h1d8 translatehistogram[h1d9]) = no_components(h1d9); #testcase translatehistogram_1d #yields (histogram1d((-2.3 -1.0 0.3 2.4 3.9)(7.9 1.5 7.0 1.0))) query h1d4 translatehistogram[h1d1]; #testcase translatehistogram_1d #yields (bool TRUE) query h1d1 translatehistogram[h1d1] = h1d1; #testcase translatehistogram_1d #yields (histogram1d((-2.3 3.9)(17.4))) query h1d4 translatehistogram[h1d10]; #testcase translatehistogram_1d_undef #yields (histogram1d undefined) query h1d10 translatehistogram[h1d4]; #testcase translatehistogram_1d_undef #yields (histogram1d undefined) query h1d10 translatehistogram[h1d11]; #testcase translatehistogram_1d_undef #yields (histogram1d undefined) query h1d10 translatehistogram[h1d12]; #testcase translatehistogram_1d #yields success let h1d13 = test1drel feed create_histogram1d[Value, h1d8]; #testcase translatehistogram_1d #yields success let h1d14 = test1drel feed create_histogram1d[Value, h1d9]; #testcase translatehistogram_1d #yields (bool TRUE) query h1d13 translatehistogram[h1d9] = h1d14; #testcase translatehistogram_2d_undef #yields (histogram2d undefined) query h2d7 translatehistogram[h2d1]; #testcase translatehistogram_2d_undef #yields (histogram2d undefined) query h2d1 translatehistogram[h2d7]; #testcase translatehistogram_2d_undef #yields (histogram2d undefined) query h2d7 translatehistogram[h2d7]; #testcase translatehistogram_2d_undef #yields (histogram2d undefined) query h2d9 translatehistogram[h2d8]; #testcase translatehistogram_2d #yields (bool TRUE) query binsX(h2d8 translatehistogram[h2d9]) = binsX(h2d9); #testcase translatehistogram_2d #yields (histogram2d ((-2.3 -1.0 0.3 5.9)(0.0 2.4 3.9)(3.0 8.5 1.0 8.0 3.0 10.5))) query h2d4 translatehistogram[h2d1]; #testcase translatehistogram_2d #yields (bool TRUE) query h2d1 translatehistogram[h2d1] = h2d1; #testcase translatehistogram_2d #yields (histogram2d ((-2.3 5.9)(0.0 3.9)(34.0))) query h2d4 translatehistogram[h2d10]; #testcase translatehistogram_2d_undef #yields (histogram2d undefined) query h2d10 translatehistogram[h2d4]; #testcase translatehistogram_2d #yields success let h2d13 = test2drel feed create_histogram2d[ValueX, ValueY, h2d8]; #testcase translatehistogram_2d #yields success let h2d14 = test2drel feed create_histogram2d[ValueX, ValueY, h2d9]; #testcase translatehistogram_2d #yields (bool TRUE) query h2d13 translatehistogram[h2d9] = h2d14; # * # * fold # * #testcase fold_1d_typeError #yields error query h1d4 fold[ fun(p1: real, p2: real) p1 + p2; 42 ]; #testcase fold_1d_typeError #yields error query h1d4 fold[ fun(p1: real, p2: int) p1 + p2; 0.0 ]; #testcase fold_1d_undef #yields (real undefined) query h1undef fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]; #testcase fold_1d_undef #yields (string undefined) query h1undef fold[ fun(p1: string, p2: real) p1; "hello world!" ]; #testcase fold_1d #yields (real 7.4) query h1d4 fold[ fun(p1: real, p2: real) p1 + p2; -10.0 ]; #testcase fold_1d #yields (real 0.0) query h1d4 fold[ fun(p1: real, p2: real) p1 * p2; 0.0 ]; #testcase fold_1d #yields (bool TRUE) query (h1d13 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) = (h1d14 fold[ fun(r1: real, r2: real) r1 + r2; 0.0 ]); #testcase fold_1d #yields (bool TRUE) query h1d4 fold[ fun(p1: bool, p2: real) p1 and (p2 >= 0.0) and (p2 <= 7.0); TRUE ]; #testcase fold_1d #yields (bool FALSE) query h1d4 fold[ fun(p1: bool, p2: real) p1 and (p2 >= 0.0) and (p2 <= 6.9); TRUE ]; #testcase fold_2d_typeError #yields error query h2d4 fold[ fun(p1: real, p2: real) p1 + p2; 42 ]; #testcase fold_2d_typeError #yields error query h2d4 fold[ fun(p1: real, p2: int) p1 + p2; 0.0 ]; #testcase fold_2d_undef #yields (real undefined) query h2undef fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]; #testcase fold_2d_undef #yields (string undefined) query h1undef fold[ fun(p1: string, p2: real) p1; "hello world!" ]; #testcase fold_2d #yields (real 24.0) query h2d4 fold[ fun(p1: real, p2: real) p1 + p2; -10.0 ]; #testcase fold_2d #yields (real 0.0) query h2d4 fold[ fun(p1: real, p2: real) p1 * p2; 0.0 ]; #testcase fold_2d #yields (bool TRUE) query (h2d13 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) = (h2d14 fold[ fun(r1: real, r2: real) r1 + r2; 0.0 ]); #testcase fold_2d #yields (bool TRUE) query h2d4 fold[ fun(p1: bool, p2: real) p1 and (p2 >= 0.0) and (p2 <= 8.0); TRUE ]; #testcase fold_2d #yields (bool FALSE) query h2d4 fold[ fun(p1: bool, p2: real) p1 and (p2 >= 0.0) and (p2 <= 7.9); TRUE ]; # * # * shrink_eager # * #testcase shrink_eager_typeError #yields error query shrink_eager( h2d4, 0.0, 1.0 ); #testcase shrink_eager_typeError #yields error query shrink_eager( h1d4, 1, 2.0 ); #testcase shrink_eager_typeError #yields error query shrink_eager( h1d4, 1.0, 2 ); #testcase shrink_eager_undef #yields (histogram1d undefined) query shrink_eager( h1undef, 1.0, 2.0 ); #testcase shrink_eager_undef #yields (histogram1d undefined) query shrink_eager( h1d4, 1.0, 1.0 ); #testcase shrink_eager_undef #yields (histogram1d undefined) query shrink_eager( h1d4, 2.0, 1.0 ); #testcase shrink_eager_undef #yields (histogram1d undefined) query shrink_eager( h1d4, -10.8, -5.0 ); #testcase shrink_eager_undef #yields (histogram1d undefined) query shrink_eager( h1d4, 10.8, 15.0 ); #testcase shrink_eager_undef #yields (histogram1d undefined) query shrink_eager( h1d4, -5.0, -2.2 ); #testcase shrink_eager_undef #yields (histogram1d undefined) query shrink_eager( h1d4, 3.0, 5.0 ); #testcase shrink_eager_undef #yields (histogram1d undefined) query shrink_eager( h1d4, 0.0, 0.2 ); #testcase shrink_eager_undef #yields (histogram1d undefined) query shrink_eager( h1d4, -2.2, -2.0 ); #testcase shrink_eager_undef #yields (histogram1d undefined) query shrink_eager( h1d4, 2.5, 3.9 ); #testcase shrink_eager #yields (histogram1d((-2.3 -2.0 -1.0 0.3 1.8)(0.9 7.0 1.5 0.0))) query shrink_eager( h1d4, -5.0, 2.0 ); #testcase shrink_eager #yields (histogram1d((-1.0 0.3 1.8 2.3 2.4)(1.5 0.0 0.0 7.0))) query shrink_eager( h1d4, -1.2, 2.5 ); #testcase shrink_eager #yields (histogram1d((2.3 2.4 3.9)(7.0 1.0))) query shrink_eager( h1d4, 1.9, 10.0 ); #testcase shrink_eager #yields (histogram1d((-2.3 -2.0)(0.9))) query shrink_eager( h1d4, -2.3, -2.0 ); #testcase shrink_eager #yields (histogram1d((2.4 3.9)(1.0))) query shrink_eager( h1d4, 2.4, 3.9 ); #testcase shrink_eager #yields (histogram1d((-2.0 -1.0 0.3 1.8 2.3)(7.0 1.5 0.0 0.0))) query shrink_eager( h1d4, -2.0, 2.3 ); # * # * shrink_eager2 # * #testcase shrink_eager2_typeError #yields error query shrink_eager2( h1d4, 0.0, 1.0, 0.0, 2.0 ); #testcase shrink_eager2_typeError #yields error query shrink_eager2( h2d4, 1, 2.0, 0.0, 2.0 ); #testcase shrink_eager2_typeError #yields error query shrink_eager2( h2d4, 1.0, 2, 0.0, 2.0 ); #testcase shrink_eager_typeError #yields error query shrink_eager2( h2d4, 1.0, 2.0, 0, 2.0 ); #testcase shrink_eager2_typeError #yields error query shrink_eager2( h2d4, 1.0, 2.0, 0, 2 ); #testcase shrink_eager2_undef #yields (histogram2d undefined) query shrink_eager2( h2undef, 1.0, 2.0, 0.0, 2.0 ); #testcase shrink_eager2_undef #yields (histogram2d undefined) query shrink_eager2( h2d4, 1.0, 1.0, 0.0, 2.0 ); #testcase shrink_eager2_undef #yields (histogram2d undefined) query shrink_eager2( h2d4, 2.0, 1.0, 0.0, 2.0 ); #testcase shrink_eager2_undef #yields (histogram2d undefined) query shrink_eager2( h2d4, 0.0, 1.0, 3.0, 2.0 ); #testcase shrink_eager2_undef #yields (histogram2d undefined) query shrink_eager2( h2d4, -10.8, -5.0, 0.0, 2.5 ); #testcase shrink_eager2_undef #yields (histogram2d undefined) query shrink_eager2( h2d4, 10.8, 15.0, 0.0, 2.5 ); #testcase shrink_eager2_undef #yields (histogram2d undefined) query shrink_eager2( h2d4, -2.3, 0.0, -3.8, -2.5 ); #testcase shrink_eager2_undef #yields (histogram2d undefined) query shrink_eager2( h2d4, -2.3, 0.0, 4.8, 7.5 ); #testcase shrink_eager2_undef #yields (histogram2d undefined) query shrink_eager2( h2d4, -5.0, -2.0, 0.0, 2.7 ); #testcase shrink_eager2_undef #yields (histogram2d undefined) query shrink_eager2( h2d4, -5.0, -4.0, 0.0, 1.0 ); #testcase shrink_eager2_undef #yields (histogram2d undefined) query shrink_eager2( h2d4, 0.0, 0.2, 2.4, 2.7 ); #testcase shrink_eager2_undef #yields (histogram2d undefined) query shrink_eager2( h2d4, 0.0, 0.2, 2.6, 2.7 ); #testcase shrink_eager2_undef #yields (histogram2d undefined) query shrink_eager2( h2d4, -5.0, -2.0, 0.0, 2.7 ); #testcase shrink_eager2 #yields (histogram2d((0.0 0.85 34.9)(14.0 16.5 24.0)(12.0 13.0 17.0 18.0))) query shrink_eager2( h2d11, -2.0, 35.0, 9.0, 25.0 ); #testcase shrink_eager2 #yields (histogram2d((-8.4 -3.2 0.0 0.85)(14.0 16.5 24.0 52.1)(2.0 3.0 4.0 7.0 8.0 9.0 12.0 13.0 14.0))) query shrink_eager2( h2d11, -8.4, 0.85, 14.0, 52.1 ); #testcase shrink_eager2 #yields (histogram2d((-8.4 -3.2 0.0 0.85)(16.5 24.0 52.1)(3.0 4.0 8.0 9.0 13.0 14.0))) query shrink_eager2( h2d11, -8.5, 1.0, 15.0, 100.0 ); #testcase shrink_eager2 #yields (histogram2d((0.85 34.9 710.3 712.0)(-42.0 8.12 14.0)(15.0 16.0 20.0 21.0 25.0 26.0))) query shrink_eager2( h2d11, 0.5, 1000.0, -50.0, 15.0 ); #testcase shrink_eager2 #yields (bool TRUE) query shrink_eager2( h2d11, -8.4, 712.0, -42.0, 52.1 ) = h2d11; #testcase shrink_eager2 #yields (bool TRUE) query shrink_eager2( h2d11, -1000.0, 1000.0, -1000.0, 1000.0 ) = h2d11; # * # * shrink_lazy # * #testcase shrink_lazy_typeError #yields error query shrink_lazy( h2d4, 0.0, 1.0 ); #testcase shrink_lazy_typeError #yields error query shrink_lazy( h1d4, 1, 2.0 ); #testcase shrink_lazy_typeError #yields error query shrink_lazy( h1d4, 1.0, 2 ); #testcase shrink_lazy_undef #yields (histogram1d undefined) query shrink_lazy( h1undef, 1.0, 2.0 ); #testcase shrink_lazy_undef #yields (histogram1d undefined) query shrink_lazy( h1d4, 1.0, 1.0 ); #testcase shrink_lazy_undef #yields (histogram1d undefined) query shrink_lazy( h1d4, 2.0, 1.0 ); #testcase shrink_lazy_undef #yields (histogram1d undefined) query shrink_lazy( h1d4, -10.8, -5.0 ); #testcase shrink_lazy_undef #yields (histogram1d undefined) query shrink_lazy( h1d4, 10.8, 15.0 ); #testcase shrink_lazy #yields (histogram1d((-2.3 -2.0)(0.9))) query shrink_lazy( h1d4, -5.0, -2.2 ); #testcase shrink_lazy #yields (histogram1d((2.4 3.9)(1.0))) query shrink_lazy( h1d4, 3.0, 5.0 ); #testcase shrink_lazy #yields (histogram1d((-1.0 0.3)(1.5))) query shrink_lazy( h1d4, 0.0, 0.2 ); #testcase shrink_lazy #yields (histogram1d((-2.3 -2.0 -1.0)(0.9 7.0))) query shrink_lazy( h1d4, -2.2, -2.0 ); #testcase shrink_lazy #yields (histogram1d((2.4 3.9)(1.0))) query shrink_lazy( h1d4, 2.5, 3.9 ); #testcase shrink_lazy #yields (histogram1d((-2.3 -2.0 -1.0 0.3 1.8 2.3)(0.9 7.0 1.5 0.0 0.0))) query shrink_lazy( h1d4, -5.0, 2.0 ); #testcase shrink_lazy #yields (histogram1d((-2.0 -1.0 0.3 1.8 2.3 2.4)(7.0 1.5 0.0 0.0 7.0))) query shrink_lazy( h1d4, -1.2, 2.35 ); #testcase shrink_lazy #yields (histogram1d((1.8 2.3 2.4 3.9)(0.0 7.0 1.0))) query shrink_lazy( h1d4, 1.9, 10.0 ); #testcase shrink_lazy #yields (histogram1d((-2.3 -2.0 -1.0)(0.9 7.0))) query shrink_lazy( h1d4, -2.3, -2.0 ); #testcase shrink_lazy #yields (histogram1d((2.4 3.9)(1.0))) query shrink_lazy( h1d4, 2.4, 3.9 ); #testcase shrink_lazy #yields (histogram1d((-2.0 -1.0 0.3 1.8 2.3 2.4)(7.0 1.5 0.0 0.0 7.0))) query shrink_lazy( h1d4, -2.0, 2.3 ); # * # * shrink_lazy2 # * #testcase shrink_lazy2_typeError #yields error query shrink_lazy2( h1d4, 0.0, 1.0, 0.0, 2.0 ); #testcase shrink_lazy2_typeError #yields error query shrink_lazy2( h2d4, 1, 2.0, 0.0, 2.0 ); #testcase shrink_lazy2_typeError #yields error query shrink_lazy2( h2d4, 1.0, 2, 0.0, 2.0 ); #testcase shrink_lazy_typeError #yields error query shrink_lazy2( h2d4, 1.0, 2.0, 0, 2.0 ); #testcase shrink_lazy2_typeError #yields error query shrink_lazy2( h2d4, 1.0, 2.0, 0, 2 ); #testcase shrink_lazy2_undef #yields (histogram2d undefined) query shrink_lazy2( h2undef, 1.0, 2.0, 0.0, 2.0 ); #testcase shrink_lazy2_undef #yields (histogram2d undefined) query shrink_lazy2( h2d4, 1.0, 1.0, 0.0, 2.0 ); #testcase shrink_lazy2_undef #yields (histogram2d undefined) query shrink_lazy2( h2d4, 2.0, 1.0, 0.0, 2.0 ); #testcase shrink_lazy2_undef #yields (histogram2d undefined) query shrink_lazy2( h2d4, 0.0, 1.0, 3.0, 2.0 ); #testcase shrink_lazy2_undef #yields (histogram2d undefined) query shrink_lazy2( h2d4, -10.8, -5.0, 0.0, 2.5 ); #testcase shrink_lazy2_undef #yields (histogram2d undefined) query shrink_lazy2( h2d4, 10.8, 15.0, 0.0, 2.5 ); #testcase shrink_lazy2_undef #yields (histogram2d undefined) query shrink_lazy2( h2d4, -2.3, 0.0, -3.8, -2.5 ); #testcase shrink_lazy2_undef #yields (histogram2d undefined) query shrink_lazy2( h2d4, -2.3, 0.0, 4.8, 7.5 ); #testcase shrink_lazy2 #yields (histogram2d((-2.3 -1.5)(0.0 2.4)(1.0))) query shrink_lazy2( h2d4, -5.0, -2.0, 0.0, 2.0 ); #testcase shrink_lazy2 #yields (histogram2d((-1.0 0.3)(0.0 2.4)(1.0))) query shrink_lazy2( h2d4, 0.0, 0.1, 0.0, 1.0 ); #testcase shrink_lazy2 #yields (histogram2d((-3.2 0.0 0.85 34.9 710.3)(8.12 14.0 16.5 24.0 52.1)(6.0 7.0 8.0 9.0 11.0 12.0 13.0 14.0 16.0 17.0 18.0 19.0 21.0 22.0 23.0 24.0))) query shrink_lazy2( h2d11, -2.0, 35.0, 9.0, 25.0 ); #testcase shrink_lazy2 #yields (histogram2d((-8.4 -3.2 0.0 0.85 34.9)(14.0 16.5 24.0 52.1)(2.0 3.0 4.0 7.0 8.0 9.0 12.0 13.0 14.0 17.0 18.0 19.))) query shrink_lazy2( h2d11, -8.4, 0.85, 14.0, 52.1 ); #testcase shrink_lazy2 #yields (histogram2d((-8.4 -3.2 0.0 0.85 34.9)(14.0 16.5 24.0 52.1)(2.0 3.0 4.0 7.0 8.0 9.0 12.0 13.0 14.0 17.0 18.0 19.0))) query shrink_lazy2( h2d11, -8.5, 1.0, 15.0, 100.0 ); #testcase shrink_lazy2 #yields (histogram2d((0.0 0.85 34.9 710.3 712.0)(-42.0 8.12 14.0 16.5)(10.0 11.0 12.0 15.0 16.0 17.0 20.0 21.0 22.0 25.0 26.0 27.0))) query shrink_lazy2( h2d11, 0.5, 1000.0, -50.0, 15.0 ); #testcase shrink_lazy2 #yields (bool TRUE) query shrink_lazy2( h2d11, -8.4, 712.0, -42.0, 52.1 ) = h2d11; #testcase shrink_lazy2 #yields (bool TRUE) query shrink_lazy2( h2d11, -1000.0, 1000.0, -1000.0, 1000.0 ) = h2d11; #testcase shrink_lazy2 #yields (bool TRUE) query shrink_lazy2( h2d11, -8.0, 711.0, 0.0, 25.0 ) = h2d11; # * # * getcount1d # * #testcase GetCount1dTestcase #yields (real 1.0) query getcount1d(h1d1, 0) #testcase GetCount1d2Testcase #yields (real 8.0) query getcount1d(h1d1, 1) #testcase GetCount1d3Testcase #yields (real 2.0) query getcount1d(h1d1, 2) #testcase GetCount1d3Testcase #yields (real 0.5) query getcount1d(h1d1, 3) #testcase GetCount1dUndefTestcase #yields (real undefined) query getcount1d(h1undef, 0) #testcase GetCount1dUndef2Testcase #yields (real undefined) query getcount1d(h1d1, 4) #testcase GetCount1dUndef3Testcase #yields (real undefined) query getcount1d(h1d1, -1) #testcase GetCount1dErrorTestcase #yields error query getcount1d(h2d1, 0) #testcase GetCount1dError2Testcase #yields error query getcount1d(h1d1, 0.0) #testcase GetCount1dError3Testcase #yields error query getcount1d(h1d1, 1, 0) # * # * getcount2d # * #testcase GetCount2dTestcase #yields (real 1.0) query getcount2d(h2d1, 0, 0) #testcase GetCount2d2Testcase #yields (real 8.0) query getcount2d(h2d1, 1, 0) #testcase GetCount2d3Testcase #yields (real 0.5) query getcount2d(h2d1, 2, 0) #testcase GetCount2d4Testcase #yields (real 0.0) query getcount2d(h2d1, 2, 1) #testcase GetCount2d5Testcase #yields (real 0.0) query getcount2d(h2d1, 0, 1) #testcase GetCount2d6Testcase #yields (real 2.0) query getcount2d(h2d1, 1, 1) #testcase GetCount2dUndefTestcase #yields (real undefined) query getcount2d(h2undef, 0, 0) #testcase GetCount2dUndef2Testcase #yields (real undefined) query getcount2d(h2d1, -1, 0) #testcase GetCount2dUndef3Testcase #yields (real undefined) query getcount2d(h2d1, 0, -1) #testcase GetCount2dUndef4Testcase #yields (real undefined) query getcount2d(h2d1, 3, 0) #testcase GetCount2dUndef5Testcase #yields (real undefined) query getcount2d(h2d1, 0, 3) #testcase GetCount2dErrorTestcase #yields error query getcount2d(h2d1, 0.0, 1) #testcase GetCount2dError2Testcase #yields error query getcount2d(h2d1, 1, 0.0) #testcase GetCount2dError3Testcase #yields error query getcount2d(h1d1, 0, 0) #testcase GetCount2dError4Testcase #yields error query getcount2d(h2d1, 0, 0, 0) # * # * insert1d # * #testcase insert1d_typeError #yields error query insert1d( h2d1, 0.0 ); #testcase insert1d_typeError #yields error query insert1d( h1d1, 2 ); #testcase insert1d_outside #yields (bool TRUE) query insert1d( h1d6, -2.5 ) = h1d6; #testcase insert1d_outside #yields (bool TRUE) query insert1d( h1d6, 4.0 ) = h1d6; #testcase insert1d_outside #yields (bool TRUE) query insert1d( h1d6, 3.9 ) = h1d6; #testcase insert1d_first #yields (histogram1d((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(1.9 0.0 1.5 0.0 0.0 7.0 0.0))) query insert1d( h1d6, -2.3 ); #testcase insert1d_first #yields (histogram1d((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(1.9 0.0 1.5 0.0 0.0 7.0 0.0))) query insert1d( h1d6, -2.1 ); #testcase insert1d_middle #yields (histogram1d((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(0.9 0.0 2.5 0.0 0.0 7.0 0.0))) query insert1d( h1d6, -1.0 ); #testcase insert1d_middle #yields (histogram1d((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(0.9 0.0 2.5 0.0 0.0 7.0 0.0))) query insert1d( h1d6, 0.0 ); #testcase insert1d_middle #yields (histogram1d((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(0.9 0.0 1.5 1.0 0.0 7.0 0.0))) query insert1d( h1d6, 0.3 ); #testcase insert1d_last #yields (histogram1d((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(0.9 0.0 1.5 0.0 0.0 7.0 1.0))) query insert1d( h1d6, 2.5 ); #testcase insert1d_last #yields (histogram1d((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(0.9 0.0 1.5 0.0 0.0 7.0 1.0))) query insert1d( h1d6, 3.8 ); #testcase insert1d #yields (real 1.0) query getcount1d( insert1d( realstream(0.0, 10000.0, 1.0) set_histogram1d, 4000.5 ), 4000 ); # * # * insert1dvalue # * #testcase insert1dvalue_typeError #yields error query insert1dvalue( h2d1, 0.0, 10.0 ); #testcase insert1dvalue_typeError #yields error query insert1dvalue( h1d1, 2, 10.0 ); #testcase insert1dvalue_typeError #yields error query insert1dvalue( h1d1, 2.0, 10 ); #testcase insert1dvalue_outside #yields (bool TRUE) query insert1dvalue( h1d6, -2.5, -3.0 ) = h1d6; #testcase insert1dvalue_outside #yields (bool TRUE) query insert1dvalue( h1d6, 4.0, 5.5 ) = h1d6; #testcase insert1dvalue_outside #yields (bool TRUE) query insert1dvalue( h1d6, 3.9, 8.4 ) = h1d6; #testcase insert1dvalue_first #yields (histogram1d((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(10.9 0.0 1.5 0.0 0.0 7.0 0.0))) query insert1dvalue( h1d6, -2.3, 10.0 ); #testcase insert1dvalue_first #yields (histogram1d((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(10.9 0.0 1.5 0.0 0.0 7.0 0.0))) query insert1dvalue( h1d6, -2.1, 10.0 ); #testcase insert1dvalue_middle #yields (histogram1d((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(0.9 0.0 11.5 0.0 0.0 7.0 0.0))) query insert1dvalue( h1d6, -1.0, 10.0 ); #testcase insert1dvalue_middle #yields (histogram1d((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(0.9 0.0 -8.5 0.0 0.0 7.0 0.0))) query insert1dvalue( h1d6, 0.0, -10.0 ); #testcase insert1dvalue_middle #yields (histogram1d((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(0.9 0.0 1.5 10.0 0.0 7.0 0.0))) query insert1dvalue( h1d6, 0.3, 10.0 ); #testcase insert1dvalue_last #yields (histogram1d((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(0.9 0.0 1.5 0.0 0.0 7.0 10.0))) query insert1dvalue( h1d6, 2.5, 10.0 ); #testcase insert1dvalue_last #yields (histogram1d((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(0.9 0.0 1.5 0.0 0.0 7.0 10.0))) query insert1dvalue( h1d6, 3.8, 10.0 ); #testcase insert1dvalue #yields (real 10.0) query getcount1d( insert1dvalue( realstream(0.0, 10000.0, 1.0) set_histogram1d, 4000.5, 10.0 ), 4000 ); # * # * insert2d # * #testcase insert2d_typeError #yields error query insert2d( h1d1, 0.0, 0.0 ); #testcase insert2d_typeError #yields error query insert2d( h2d11, 2, 0.0 ); #testcase insert2d_typeError #yields error query insert2d( h2d11, 2.5, 0 ); #testcase insert2d_outside #yields (bool TRUE) query insert2d( h2d11, -8.5, 0.0 ) = h2d11; #testcase insert2d_outside #yields (bool TRUE) query insert2d( h2d11, 0.0, -42.1 ) = h2d11; #testcase insert2d_outside #yields (bool TRUE) query insert2d( h2d11, 712.0, 0.0 ) = h2d11; #testcase insert2d_outside #yields (bool TRUE) query insert2d( h2d11, 0.0, 52.1 ) = h2d11; #testcase insert2d_outside #yields (bool TRUE) query insert2d( h2d11, 712.0, 52.1 ) = h2d11; #testcase insert2d_first #yields (histogram2d((-8.4 -3.2 0.0 0.85 34.9 710.3 712.0)(-42.0 8.12 14.0 16.5 24.0 52.1)(1.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0))) query insert2d( h2d11, -8.4, -42.0 ); #testcase insert2d_first #yields (histogram2d((-8.4 -3.2 0.0 0.85 34.9 710.3 712.0)(-42.0 8.12 14.0 16.5 24.0 52.1)(1.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0))) query insert2d( h2d11, -8.0, -10.0 ); #testcase insert2d_middle #yields (histogram2d((-8.4 -3.2 0.0 0.85 34.9 710.3 712.0)(-42.0 8.12 14.0 16.5 24.0 52.1)(0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 13.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0))) query insert2d( h2d11, 0.0, 14.0 ); #testcase insert2d_middle #yields (histogram2d((-8.4 -3.2 0.0 0.85 34.9 710.3 712.0)(-42.0 8.12 14.0 16.5 24.0 52.1)(0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 13.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0))) query insert2d( h2d11, 0.5, 15.0 ); #testcase insert2d_middle #yields (histogram2d((-8.4 -3.2 0.0 0.85 34.9 710.3 712.0)(-42.0 8.12 14.0 16.5 24.0 52.1)(0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 19.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0))) query insert2d( h2d11, 0.85, 16.5 ); #testcase insert2d_last #yields (histogram2d((-8.4 -3.2 0.0 0.85 34.9 710.3 712.0)(-42.0 8.12 14.0 16.5 24.0 52.1)(0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 30.0))) query insert2d( h2d11, 711.0, 25.0 ); #testcase insert2d_last #yields (histogram2d((-8.4 -3.2 0.0 0.85 34.9 710.3 712.0)(-42.0 8.12 14.0 16.5 24.0 52.1)(0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 30.0))) query insert2d( h2d11, 710.3, 24.0 ); #testcase insert2d #yields (real 1.0) query getcount2d( insert2d( realstream(0.0, 100.0, 1.0) realstream(0.0, 100.0, 1.0) set_histogram2d, 50.5, 42.1 ), 50, 42 ); # * # * insert2dvalue # * #testcase insert2dvalue_typeError #yields error query insert2dvalue( h1d1, 0.0, 0.0, 10.0 ); #testcase insert2dvalue_typeError #yields error query insert2dvalue( h2d11, 2, 0.0, 10.0 ); #testcase insert2dvalue_typeError #yields error query insert2dvalue( h2d11, 2.5, 0, 10.0 ); #testcase insert2dvalue_typeError #yields error query insert2dvalue( h2d11, 2.5, 0.0, 10 ); #testcase insert2dvalue_outside #yields (bool TRUE) query insert2dvalue( h2d11, -8.5, 0.0, 10.0 ) = h2d11; #testcase insert2dvalue_outside #yields (bool TRUE) query insert2dvalue( h2d11, 0.0, -42.1, 10.0 ) = h2d11; #testcase insert2dvalue_outside #yields (bool TRUE) query insert2dvalue( h2d11, 712.0, 0.0, 10.0 ) = h2d11; #testcase insert2dvalue_outside #yields (bool TRUE) query insert2dvalue( h2d11, 0.0, 52.1, 10.0 ) = h2d11; #testcase insert2dvalue_outside #yields (bool TRUE) query insert2dvalue( h2d11, 712.0, 52.1, 10.0 ) = h2d11; #testcase insert2dvalue_first #yields (histogram2d((-8.4 -3.2 0.0 0.85 34.9 710.3 712.0)(-42.0 8.12 14.0 16.5 24.0 52.1)(10.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0))) query insert2dvalue( h2d11, -8.4, -42.0, 10.0 ); #testcase insert2dvalue_first #yields (histogram2d((-8.4 -3.2 0.0 0.85 34.9 710.3 712.0)(-42.0 8.12 14.0 16.5 24.0 52.1)(10.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0))) query insert2dvalue( h2d11, -8.0, -10.0, 10.0 ); #testcase insert2dvalue_middle #yields (histogram2d((-8.4 -3.2 0.0 0.85 34.9 710.3 712.0)(-42.0 8.12 14.0 16.5 24.0 52.1)(0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 22.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0))) query insert2dvalue( h2d11, 0.0, 14.0, 10.0 ); #testcase insert2dvalue_middle #yields (histogram2d((-8.4 -3.2 0.0 0.85 34.9 710.3 712.0)(-42.0 8.12 14.0 16.5 24.0 52.1)(0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 22.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0))) query insert2dvalue( h2d11, 0.5, 15.0, 10.0 ); #testcase insert2dvalue_middle #yields (histogram2d((-8.4 -3.2 0.0 0.85 34.9 710.3 712.0)(-42.0 8.12 14.0 16.5 24.0 52.1)(0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 8.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0))) query insert2dvalue( h2d11, 0.85, 16.5, -10.0 ); #testcase insert2dvalue_last #yields (histogram2d((-8.4 -3.2 0.0 0.85 34.9 710.3 712.0)(-42.0 8.12 14.0 16.5 24.0 52.1)(0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 39.0))) query insert2dvalue( h2d11, 711.0, 25.0, 10.0 ); #testcase insert2dvalue_last #yields (histogram2d((-8.4 -3.2 0.0 0.85 34.9 710.3 712.0)(-42.0 8.12 14.0 16.5 24.0 52.1)(0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 39.0))) query insert2dvalue( h2d11, 710.3, 24.0, 10.0 ); #testcase insert2dvalue #yields (real 18.67) query getcount2d( insert2dvalue( realstream(0.0, 100.0, 1.0) realstream(0.0, 100.0, 1.0) set_histogram2d, 50.5, 42.1, 18.67 ), 50, 42 ); # * # * histogramXd_as_attribute # * #testcase histogramXd_as_attribute #yields success (create testrelAttr : (rel(tuple( (Attr1 int) (Attr2 histogram1d) (Attr3 histogram2d))))); (update testrelAttr := ((rel(tuple( (Attr1 int) (Attr2 histogram1d) (Attr3 histogram2d)))) ( (1 ((-10.0 -5.0 0.0 5.0 10.0)(2.0 2.0 2.0 2.0)) ((-2.3 -1.0 0.3 5.9)(0.0 2.4 3.9)(1.0 0.0 8.0 2.0 0.5 0.0))) (2 ((-10.0 -5.0 0.0 5.0 10.0)(2.0 2.0 2.0 2.0)) ((-10.0 -3.5 2.3 4.5)(-4.5 -2.3 3.5 10.0)(2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0))) (3 ((-2.3 -2.0 -1.0 0.3 1.8 2.3 2.5 3.9)(0.9 7.0 1.5 0.0 0.0 7.0 1.0)) ((-2.3 -1.5 -1.0 0.3 1.0 5.9)(0.0 2.3 2.6 3.9)(1.0 0.0 8.0 2.0 0.5 0.0 1.0 0.0 8.0 2.0 0.5 0.0 1.0 8.0 2.0))) ))); #yields (int 5) query testrelAttr feed {a} testrelAttr feed {b} hashjoin[Attr2_a, Attr2_b, 100] count; # * # * distance (1d) # * #testcase distance_1d_typeError #yields error query distance( h1d1, h2d1 ); #testcase distance_1d_typeError #yields error query distance( h2d1, h1d1 ); #testcase distance_1d_undef #yields (real undefined) query distance( h1undef, h1d1 ); #testcase distance_1d_undef #yields (real undefined) query distance( h1d1, h1undef ); #testcase distance_1d_undef #yields (real undefined) query distance( h1undef, h1undef ); #testcase distance_1d_incompatibel #yields (real undefined) query distance( h1d1, h1d5 ); #testcase distance_1d_incompatibel #yields (real undefined) query distance( h1d5, h1d1 ); #testcase distance_1d_equal #yields (real 0.0) query distance( h1d1, h1d2 ); #testcase distance_1d_equal #yields (real 0.0) query distance( test1drel feed create_histogram1d_equiwidth[Value, 1000], test1drel feed create_histogram1d_equiwidth[Value, 1000] ); #testcase distance_1d #yields (real 1.51) query distance( h1d1, h1d3 ); #testcase distance_1d #yields (real 1.51) query distance( h1d3, h1d1 ); #testcase distance_1d #yields (real 81.0) query distance( insert1dvalue( h1d8, -42.56, 9.0 ), h1d8 ); #yields success let h1ddist1 = test2drel feed create_histogram1d[ ValueX, h1d8 ]; let h1ddist2 = test2drel feed create_histogram1d[ ValueY, h1d8 ]; #testcase distance_1d #yields (bool TRUE) query distance( h1ddist1, h1ddist2 ) = ( h1ddist1 h1ddist2 usehistogram2[ ; fun(r1: real, r2: real) (r1 - r2) * (r1 - r2)] fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ] ); #testcase distance_1d_coarsen #yields (real 115.11) query distance( h1d4, h1d1 ); #testcase distance_1d_coarsen #yields (real 115.11) query distance( h1d1, h1d4 ); #testcase distance_1d_coarsen #yields (real 81.0) query distance( insert1dvalue( h1d8, -42.56, 9.0 ), h1d9 ); # * # * distance (2d) # * #testcase distance_2d_undef #yields (real undefined) query distance( h2undef, h2d1 ); #testcase distance_2d_undef #yields (real undefined) query distance( h2d1, h2undef ); #testcase distance_2d_undef #yields (real undefined) query distance( h2undef, h2undef ); #testcase distance_2d_incompatibel #yields (real undefined) query distance( h2d1, h2d5 ); #testcase distance_2d_incompatibel #yields (real undefined) query distance( h2d5, h2d1 ); #testcase distance_2d_equal #yields (real 0.0) query distance( h2d1, h2d2 ); #testcase distance_2d_equal #yields (real 0.0) query distance( test2drel feed create_histogram2d_equiwidth[ValueX, ValueY, 100, 200], test2drel feed create_histogram2d_equiwidth[ValueX, ValueY, 100, 200] ); #testcase distance_2d #yields (real 11.8425) query distance( h2d1, h2d3 ); #testcase distance_2d #yields (real 11.8425) query distance( h2d3, h2d1 ); #testcase distance_2d #yields (real 81.0) query distance( insert2dvalue( h2d8, -42.56, 367.78, 9.0 ), h2d8 ); #yields success let h2ddist1 = test2drel feed create_histogram2d[ ValueX, ValueY, h2d8 ]; let h2ddist2 = test2drel feed create_histogram2d[ ValueY, ValueX, h2d8 ]; #testcase distance_2d #yields (bool TRUE) query distance( h2ddist1, h2ddist2 ) = ( h2ddist1 h2ddist2 usehistogram2[ ; fun(r1: real, r2: real) (r1 - r2) * (r1 - r2)] fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ] ); #testcase distance_2d_coarsen #yields (real 277.75) query distance( h2d4, h2d1 ); #testcase distance_2d_coarsen #yields (real 277.75) query distance( h2d1, h2d4 ); #testcase distance_2d_coarsen #yields (real 81.0) query distance( insert2dvalue( h2d8, -42.56, 367.78, 9.0 ), h2d9 ); # * # * findbin # * #testcase FindBinTestcase #yields (int undefined) query findbin(h1use, -11.2) #testcase FindBin1Testcase #yields (int 0) query findbin(h1use, -7.64) #testcase FindBin2Testcase #yields (int 1) query findbin(h1use, -3.1415926) #testcase FindBin3Testcase #yields (int 2) query findbin(h1use, 0.0) #testcase FindBin4Testcase #yields (int 2) query findbin(h1use, 1.234) #testcase FindBin5Testcase #yields (int 3) query findbin(h1use, 6.7432) #testcase FindBin6Testcase #yields (int undefined) query findbin(h1use, 10.0) #testcase FindBinErrorTestcase #yields error query findbin(h1use, 1) #testcase FindBinError2Testcase #yields error query findbin(h1use, 1.0, 2.0) #testcase FindBinError3Testcase #yields error query findbin(h2use, 1.0) # * # * findbinX # * #testcase findbinXTestcase #yields (int undefined) query findbinX(h2use, -11.2) #testcase findbinX1Testcase #yields (int 0) query findbinX(h2use, -7.3) #testcase findbinX2Testcase #yields (int 1) query findbinX(h2use, 1.32) #testcase findbinX3Testcase #yields (int 2) query findbinX(h2use, 3.1415926) #testcase findbinX4Testcase #yields (int undefined) query findbinX(h2use, 4.5) #testcase findbinX5Testcase #yields (int 0) query findbinX(h2use, -10.0) #testcase findbinX6Testcase #yields (int undefined) query findbinX(h2use, 10.0) #testcase findbinXErrorTestcase #yields error query findbinX(h2use, 1) #testcase findbinXError2Testcase #yields error query findbinX(h2use, 1.0, 2.0) #testcase findbinXError3Testcase #yields error query findbinX(h1use, 1.0) # * # * findbinY # * #testcase findbinYTestcase #yields (int undefined) query findbinY(h2use, -11.2) #testcase findbinY1Testcase #yields (int 0) query findbinY(h2use, -4.3) #testcase findbinY2Testcase #yields (int 1) query findbinY(h2use, -1.32) #testcase findbinY3Testcase #yields (int 2) query findbinY(h2use, 3.6) #testcase findbinY4Testcase #yields (int undefined) query findbinY(h2use, 10.0) #testcase findbinY5Testcase #yields (int 0) query findbinY(h2use, -4.5) #testcase findbinYErrorTestcase #yields error query findbinY(h2use, 1) #testcase findbinYError2Testcase #yields error query findbinY(h2use, 1.0, 2.0) #testcase findbinYError3Testcase #yields error query findbinY(h1use, 1.0) # * # * find_minbin # * #testcase FindMinBinTestcase #yields (int 3) query h1d1 find_minbin aggregateS[ fun(i1:int, i2:int) i1+i2 ; 0] #testcase FindMinBin2Testcase #yields (int 6) query h1use find_minbin aggregateS[ fun(i1:int, i2:int) i1+i2 ; 0] #testcase FindMinBin3Testcase #yields (int 3) query h1d3 find_minbin aggregateS[ fun(i1:int, i2:int) i1+i2 ; 0] #testcase FindMinBinUndefTestcase #yields (bool TRUE) query h1undef find_minbin ensure[0] #testcase FindMinBin2dTestcase #yields (int 2) query h2d1 find_minbin count #testcase FindMinBin2d2Testcase #yields (int 2) query h2d2 find_minbin count #testcase FindMinBin2d3Testcase #yields (int 1) query h2d3 find_minbin count #testcase FindMinBin2dUndefTestcase #yields (bool TRUE) query h2undef find_minbin ensure[0] # * # * find_maxbin # * #testcase FindMaxBinTestcase #yields (int 1) query h1d1 find_maxbin aggregateS[ fun(i1:int, i2:int) i1+i2 ; 0] #testcase FindMaxBin2Testcase #yields (int 6) query h1use find_maxbin aggregateS[ fun(i1:int, i2:int) i1+i2 ; 0] #testcase FindMaxBin3Testcase #yields (int 1) query h1d3 find_maxbin aggregateS[ fun(i1:int, i2:int) i1+i2 ; 0] #testcase FindMaxBinUndefTestcase #yields (bool TRUE) query h1undef find_maxbin ensure[0] #testcase FindMaxBin2dTestcase #yields (int 1) query h2d1 find_maxbin count #testcase FindMaxBin2d2Testcase #yields (int 1) query h2d2 find_maxbin count #testcase FindMaxBin2d3Testcase #yields (int 1) query h2d3 find_maxbin count #testcase FindMaxBin2dUndefTestcase #yields (bool TRUE) query h2undef find_maxbin ensure[0] # * # * mean # * #testcase MeanTestcase #yields (bool TRUE) query (intstream(1, 100000) use[fun(i1:int) rng_gaussian(0.75) + 10.0] transformstream create_histogram1d_equiwidth[Elem, 100] mean - 10.0)< 0.75 #testcase Mean2Testcase #yields (bool TRUE) query (intstream(1, 100000) use[fun(i1:int) rng_gaussian(1.75) + 5.0] transformstream create_histogram1d_equiwidth[Elem, 100] mean - 5.0)< 1.75 #testcase Mean3Testcase #yields (real 0.0) query h1use mean #testcase Mean4Testcase #yields (real -0.0152174) query h1d1 mean #testcase Mean5Testcase #yields (real 0.3816091954) query h1d4 mean #testcase MeanErrorTestcase #yields error query h2d1 mean # * # * meanX # * #testcase MeanXTestcase #yields (bool TRUE) query (intstream(1, 100000) use[fun(i1:int) rng_gaussian(0.75) + 10.0] transformstream create_histogram2d_equiwidth[Elem, Elem, 100, 100] meanX - 10.0)< 0.75 #testcase MeanX2Testcase #yields (bool TRUE) query (intstream(1, 100000) use[fun(i1:int) rng_gaussian(1.75) + 5.0] transformstream create_histogram2d_equiwidth[Elem, Elem, 100, 100] meanX - 5.0)< 1.75 #testcase MeanX3Testcase #yields (real -1.3166667) query h2use meanX #testcase MeanX4Testcase #yields (real -0.3130435) query h2d1 meanX #testcase MeanX5Testcase #yields (real 0.4764705) query h2d4 meanX #testcase MeanXErrorTestcase #yields error query h1d1 meanX # * # * meanY # * #testcase MeanYTestcase #yields (bool TRUE) query (intstream(1, 100000) use[fun(i1:int) rng_gaussian(0.75) + 10.0] transformstream create_histogram2d_equiwidth[Elem, Elem, 100, 100] meanY - 10.0)< 0.75 #testcase MeanY2Testcase #yields (bool TRUE) query (intstream(1, 100000) use[fun(i1:int) rng_gaussian(1.75) + 5.0] transformstream create_histogram2d_equiwidth[Elem, Elem, 100, 100] meanY - 5.0)< 1.75 #testcase MeanY3Testcase #yields (real 1.3166667) query h2use meanY #testcase MeanY4Testcase #yields (real 1.53913) query h2d1 meanY #testcase MeanY5Testcase #yields (real 2.62941) query h2d4 meanY #testcase MeanYErrorTestcase #yields error query h1d1 meanY # * # * create_histogram1d_equicount # * #testcase create_testrelEQ #yields success (create testrelEQ : (rel(tuple( (Attr1 int) (Attr2 real) (Attr3 real))))); (update testrelEQ := ((rel(tuple( (Attr1 int) (Attr2 real) (Attr3 real)))) ( (1 -3.1 8.5) (2 0.0 -89.0) (3 -2.0 17.23) (4 0.0 2.0) (5 8.9 13.4) (6 10.56 -60.89) (7 0.0 8.5) (8 -2.7 -89.0) (9 12.78 17.23) (10 0.4 2.0) (11 0.0 13.4) (12 10.56 -60.89) ))); #testcase create_histogram1d_equicount_typeError #yields error query testrelEQ feed create_histogram1d_equicount[ Attr1, 12 ]; #testcase create_histogram1d_equicount_typeError #yields error query testrelEQ feed create_histogram1d_equicount[ Attr2, 10.5 ]; #testcase create_histogram1d_equicount_typeError #yields error query testrelEQ feed create_histogram1d_equicount[ Attr0, 10 ]; #testcase create_histogram1d_equicount_undef #yields (histogram1d undefined) query testrelEQ feed create_histogram1d_equicount[ Attr2, 0 ]; #testcase create_histogram1d_equicount_undef #yields (histogram1d undefined) query testrelEQ feed create_histogram1d_equicount[ Attr2, -5 ]; #testcase create_histogram1d_equicount_undef #yields (histogram1d undefined) query testrelEQ feed head[0] create_histogram1d_equicount[ Attr2, 6 ]; #testcase create_histogram1d_equicount #yields (bool TRUE) query testrelEQ feed create_histogram1d_equicount[ Attr2, 42 ] = testrelEQ feed create_histogram1d_equicount[ Attr2, 12 ]; #testcase create_histogram1d_equicount_binvariance_10000->10 #yields success let equihist1d1 = test1drel feed create_histogram1d_equicount[ Value, 10 ]; let binmean1d1 = (equihist1d1 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) / (no_components( equihist1d1 )); let binvariance1d1 = (equihist1d1 fold[ fun(p1: real, p2: real) p1 + (( p2 - binmean1d1 ) * ( p2 - binmean1d1 )); 0.0 ]) / (no_components( equihist1d1 ) - 1); #yields (bool TRUE) query sqrt(binvariance1d1) < 0.05; #testcase create_histogram1d_equicount_binvariance_10000->100 #yields success let equihist1d2 = test1drel feed create_histogram1d_equicount[ Value, 100 ]; let binmean1d2 = (equihist1d2 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) / (no_components( equihist1d2 )); let binvariance1d2 = (equihist1d2 fold[ fun(p1: real, p2: real) p1 + (( p2 - binmean1d2 ) * ( p2 - binmean1d2 )); 0.0 ]) / (no_components( equihist1d2 ) - 1); #yields (bool TRUE) query sqrt(binvariance1d2) < 0.05; #testcase create_histogram1d_equicount_binvariance_10000->1000 #yields success let equihist1d3 = test1drel feed create_histogram1d_equicount[ Value, 1000 ]; let binmean1d3 = (equihist1d3 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) / (no_components( equihist1d3 )); let binvariance1d3 = (equihist1d3 fold[ fun(p1: real, p2: real) p1 + (( p2 - binmean1d3 ) * ( p2 - binmean1d3 )); 0.0 ]) / (no_components( equihist1d3 ) - 1); #yields (bool TRUE) query sqrt(binvariance1d3) < 0.05; #testcase create_histogram1d_equicount_binvariance_10000->10000 #yields success let equihist1d4 = test1drel feed create_histogram1d_equicount[ Value, 10000 ]; let binmean1d4 = (equihist1d4 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) / (no_components( equihist1d4 )); let binvariance1d4 = (equihist1d4 fold[ fun(p1: real, p2: real) p1 + (( p2 - binmean1d4 ) * ( p2 - binmean1d4 )); 0.0 ]) / (no_components( equihist1d4 ) - 1); #yields (bool TRUE) query sqrt(binvariance1d4) < 0.05; #testcase create_histogram1d_equicount_binvariance_10000->10 #yields success let equihist1d11 = intstream(1, 10000) use[ fun(i1:int) rng_gaussian(100.0) ] transformstream create_histogram1d_equicount[Elem, 10]; let binmean1d11 = (equihist1d11 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) / (no_components( equihist1d11 )); let binvariance1d11 = (equihist1d11 fold[ fun(p1: real, p2: real) p1 + (( p2 - binmean1d11 ) * ( p2 - binmean1d11 )); 0.0 ]) / (no_components( equihist1d11 ) - 1); #yields (bool TRUE) query sqrt(binvariance1d11) < 0.05; #testcase create_histogram1d_equicount_binvariance_10000->100 #yields success let equihist1d12 = intstream(1, 10000) use[ fun(i1:int) rng_gaussian(100.0) ] transformstream create_histogram1d_equicount[Elem, 100]; let binmean1d12 = (equihist1d12 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) / (no_components( equihist1d12 )); let binvariance1d12 = (equihist1d12 fold[ fun(p1: real, p2: real) p1 + (( p2 - binmean1d12 ) * ( p2 - binmean1d12 )); 0.0 ]) / (no_components( equihist1d12 ) - 1); #yields (bool TRUE) query sqrt(binvariance1d12) < 0.05; #testcase create_histogram1d_equicount_binvariance_10000->1000 #yields success let equihist1d13 = intstream(1, 10000) use[ fun(i1:int) rng_gaussian(100.0) ] transformstream create_histogram1d_equicount[Elem, 1000]; let binmean1d13 = (equihist1d13 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) / (no_components( equihist1d13 )); let binvariance1d13 = (equihist1d13 fold[ fun(p1: real, p2: real) p1 + (( p2 - binmean1d13 ) * ( p2 - binmean1d13 )); 0.0 ]) / (no_components( equihist1d13 ) - 1); #yields (bool TRUE) query sqrt(binvariance1d12) < 0.05; # * # * create_histogram2d_equicount # * #testcase create_histogram2d_equicount_typeError #yields error query testrelEQ feed create_histogram2d_equicount[ Attr1, Attr2, 12, 6 ]; #testcase create_histogram2d_equicount_typeError #yields error query testrelEQ feed create_histogram2d_equicount[ Attr2, Attr1, 12, 6 ]; #testcase create_histogram2d_equicount_typeError #yields error query testrelEQ feed create_histogram2d_equicount[ Attr2, Attr3, 12.5, 6 ]; #testcase create_histogram2d_equicount_typeError #yields error query testrelEQ feed create_histogram2d_equicount[ Attr2, Attr3, 12, 6.5 ]; #testcase create_histogram2d_equicount_typeError #yields error query testrelEQ feed create_histogram2d_equicount[ Attr1, Attr2, 12, 6 ]; #testcase create_histogram2d_equicount_typeError #yields error query testrelEQ feed create_histogram2d_equicount[ Attr0, Attr3, 12, 6 ]; #testcase create_histogram2d_equicount_typeError #yields error query testrelEQ feed create_histogram2d_equicount[ Attr2, Attr0, 0, 6 ]; #testcase create_histogram2d_equicount_undef #yields (histogram2d undefined) query testrelEQ feed create_histogram2d_equicount[ Attr2, Attr3, 12, 0 ]; #testcase create_histogram2d_equicount_undef #yields (histogram2d undefined) query testrelEQ feed create_histogram2d_equicount[ Attr2, Attr3, 12, -6 ]; #testcase create_histogram2d_equicount_undef #yields (histogram2d undefined) query testrelEQ feed create_histogram2d_equicount[ Attr2, Attr3, -12, 6 ]; #testcase create_histogram2d_equicount_undef #yields (histogram2d undefined) query testrelEQ feed head[0] create_histogram2d_equicount[ Attr2, Attr3, 12, 6 ]; #testcase create_histogram2d_equicount #yields (bool TRUE) query testrelEQ feed create_histogram2d_equicount[ Attr2, Attr3, 12, 42 ] = testrelEQ feed create_histogram2d_equicount[ Attr2, Attr3, 12, 12 ]; #testcase create_histogram2d_equicount #yields (bool TRUE) query testrelEQ feed create_histogram2d_equicount[ Attr2, Attr3, 42, 12 ] = testrelEQ feed create_histogram2d_equicount[ Attr2, Attr3, 12, 12 ]; #testcase create_histogram2d_equicount #yields (bool TRUE) query testrelEQ feed create_histogram2d_equicount[ Attr2, Attr3, 42, 42 ] = testrelEQ feed create_histogram2d_equicount[ Attr2, Attr3, 12, 12 ]; #testcase create_histogram2d_equicount_binvariance_10000->10x10 #yields success let equihist2d1 = test2drel feed create_histogram2d_equicount[ ValueX, ValueY, 10, 10 ]; let binmean2d1 = (equihist2d1 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) / (binsX( equihist2d1 ) * (binsY( equihist2d1 ))); let binvariance2d1 = (equihist2d1 fold[ fun(p1: real, p2: real) p1 + (( p2 - binmean2d1 ) * ( p2 - binmean2d1 )); 0.0 ]) / ((binsX( equihist2d1 ) * binsY( equihist2d1 )) - 1); #yields (bool TRUE) query sqrt(binvariance2d1) < 10.0; #testcase create_histogram2d_equicount_binvariance_10000->100x100 #yields success let equihist2d2 = test2drel feed create_histogram2d_equicount[ ValueX, ValueY, 100, 100 ]; let binmean2d2 = (equihist2d2 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) / (binsX( equihist2d2 ) * (binsY( equihist2d2 ))); let binvariance2d2 = (equihist2d2 fold[ fun(p1: real, p2: real) p1 + (( p2 - binmean2d2 ) * ( p2 - binmean2d2 )); 0.0 ]) / ((binsX( equihist2d2 ) * binsY( equihist2d2 )) - 1); #yields (bool TRUE) query sqrt(binvariance2d2) < 10.0; #testcase create_histogram2d_equicount_binvariance_10000->10x1000 #yields success let equihist2d3 = test2drel feed create_histogram2d_equicount[ ValueX, ValueY, 10, 1000 ]; let binmean2d3 = (equihist2d3 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) / (binsX( equihist2d3 ) * (binsY( equihist2d3 ))); let binvariance2d3 = (equihist2d3 fold[ fun(p1: real, p2: real) p1 + (( p2 - binmean2d3 ) * ( p2 - binmean2d3 )); 0.0 ]) / ((binsX( equihist2d3 ) * binsY( equihist2d3 )) - 1); #yields (bool TRUE) query sqrt(binvariance2d3) < 10.0; #testcase create_histogram2d_equicount_binvariance_10000->50x100 #yields success let equihist2d4 = test2drel feed create_histogram2d_equicount[ ValueX, ValueY, 50, 100 ]; let binmean2d4 = (equihist2d4 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) / (binsX( equihist2d4 ) * (binsY( equihist2d4 ))); let binvariance2d4 = (equihist2d4 fold[ fun(p1: real, p2: real) p1 + (( p2 - binmean2d4 ) * ( p2 - binmean2d4 )); 0.0 ]) / ((binsX( equihist2d4 ) * binsY( equihist2d4 )) - 1); #yields (bool TRUE) query sqrt(binvariance2d4) < 10.0; #testcase create_histogram2d_equicount_binvariance_10000->50x50 #yields success let equihist2d5 = test2drel feed create_histogram2d_equicount[ ValueX, ValueY, 50, 50 ]; let binmean2d5 = (equihist2d5 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) / (binsX( equihist2d5 ) * (binsY( equihist2d5 ))); let binvariance2d5 = (equihist2d5 fold[ fun(p1: real, p2: real) p1 + (( p2 - binmean2d5 ) * ( p2 - binmean2d5 )); 0.0 ]) / ((binsX( equihist2d5 ) * binsY( equihist2d5 )) - 1); #yields (bool TRUE) query sqrt(binvariance2d4) < 10.0; #testcase create_histogram2d_equicount_binvariance_1000000->10x10 #yields success let equihist2d11 = intstream(1, 1000) use[ fun(i1:int) rng_gaussian(10.0) ] transformstream {a} intstream(1, 1000) use[ fun(i2:int) rng_gaussian(1.0) ] transformstream {b} symmproduct create_histogram2d_equicount[ Elem_a, Elem_b, 10, 10 ]; let binmean2d11 = (equihist2d11 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) / (binsX( equihist2d11 ) * (binsY( equihist2d11 ))); let binvariance2d11 = (equihist2d11 fold[ fun(p1: real, p2: real) p1 + (( p2 - binmean2d11 ) * ( p2 - binmean2d11 )); 0.0 ]) / ((binsX( equihist2d11 ) * binsY( equihist2d11 )) - 1); #yields (bool TRUE) query sqrt(binvariance2d11) < 0.05; #testcase create_histogram2d_equicount_binvariance_10000->100x100 #yields success let equihist2d12 = intstream(1, 100) use[ fun(i1:int) rng_gaussian(10.0) ] transformstream {a} intstream(1, 100) use[ fun(i2:int) rng_gaussian(100.0) ] transformstream {b} symmproduct create_histogram2d_equicount[ Elem_a, Elem_b, 100, 100 ]; let binmean2d12 = (equihist2d12 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) / (binsX( equihist2d12 ) * (binsY( equihist2d12 ))); let binvariance2d12 = (equihist2d12 fold[ fun(p1: real, p2: real) p1 + (( p2 - binmean2d12 ) * ( p2 - binmean2d12 )); 0.0 ]) / ((binsX( equihist2d12 ) * binsY( equihist2d12 )) - 1); #yields (bool TRUE) query sqrt(binvariance2d12) < 0.05; #testcase create_histogram2d_equicount_binvariance_10000->1000x10 #yields success let equihist2d13 = intstream(1, 100) use[ fun(i1:int) rng_gaussian(10.0) ] transformstream {a} intstream(1, 100) use[ fun(i2:int) rng_gaussian(100.0) ] transformstream {b} symmproduct create_histogram2d_equicount[ Elem_a, Elem_b, 1000, 10 ]; let binmean2d13 = (equihist2d13 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) / (binsX( equihist2d13 ) * (binsY( equihist2d13 ))); let binvariance2d13 = (equihist2d13 fold[ fun(p1: real, p2: real) p1 + (( p2 - binmean2d13 ) * ( p2 - binmean2d13 )); 0.0 ]) / ((binsX( equihist2d13 ) * binsY( equihist2d13 )) - 1); #yields (bool TRUE) query sqrt(binvariance2d13) < 0.05; #testcase create_histogram2d_equicount_binvariance_10000->50x10 #yields success let equihist2d14 = intstream(1, 100) use[ fun(i1:int) rng_gaussian(10.0) ] transformstream {a} intstream(1, 100) use[ fun(i2:int) rng_gaussian(100.0) ] transformstream {b} symmproduct create_histogram2d_equicount[ Elem_a, Elem_b, 1000, 10 ]; let binmean2d14 = (equihist2d14 fold[ fun(p1: real, p2: real) p1 + p2; 0.0 ]) / (binsX( equihist2d14 ) * (binsY( equihist2d14 ))); let binvariance2d14 = (equihist2d14 fold[ fun(p1: real, p2: real) p1 + (( p2 - binmean2d14 ) * ( p2 - binmean2d14 )); 0.0 ]) / ((binsX( equihist2d14 ) * binsY( equihist2d14 )) - 1); #yields (bool TRUE) query sqrt(binvariance2d14) < 0.05; # * # * variance # * #testcase VarianceTestcase #yields (bool TRUE) query intstream(1, 100000) use[ fun(i1:int) 5.0 ] transformstream create_histogram1d_equiwidth[Elem, 10] variance = 0.0 #testcase Variance2Testcase #yields (bool TRUE) query (intstream(1, 1000000) use[ fun(i1:int) rng_gaussian(0.75) ] transformstream create_histogram1d_equicount[Elem, 1000000] variance - (0.75 * 0.75)) < 0.0001 #testcase VarianceTestcase #yields (bool TRUE) query (intstream(1, 1000000) use[ fun(i1:int) rng_gaussian(12.3) ] transformstream create_histogram1d_equicount[Elem, 1000000] variance - (12.3 * 12.3)) < 1 #testcase VarianceTestcase #yields (bool TRUE) query (intstream(1, 1000000) use[ fun(i1:int) rng_gaussian(-7.5) ] transformstream create_histogram1d_equicount[Elem, 1000] variance - (-7.5 * -7.5)) < 1 #testcase VarianceUndefTestcase #yields (real undefined) query h1undef variance #testcase VarianceErrorTestcase #yields error query h2d1 variance # * # * varianceX # * #testcase VarianceXTestcase #yields (bool TRUE) query intstream(1, 100000) use[ fun(i1:int) 5.0 ] transformstream create_histogram2d_equiwidth[Elem, Elem, 10, 10] varianceX < 0.0000001 #testcase VarianceX2Testcase #yields (bool TRUE) query (intstream(1, 1000000) use[ fun(i1:int) rng_gaussian(0.75) ] transformstream create_histogram2d_equicount[Elem, Elem, 1000, 1000] varianceX - (0.75 * 0.75)) < 0.1 #testcase VarianceXTestcase #yields (bool TRUE) query (intstream(1, 1000000) use[ fun(i1:int) rng_gaussian(12.3) ] transformstream create_histogram2d_equicount[Elem, Elem, 1000, 1000] varianceX - (12.3 * 12.3)) < 2 #testcase VarianceXTestcase #yields (bool TRUE) query (intstream(1, 1000000) use[ fun(i1:int) rng_gaussian(-7.5) ] transformstream create_histogram2d_equicount[Elem, Elem, 333, 333] varianceX - (-7.5 * -7.5)) < 2 #testcase VarianceXUndefTestcase #yields (real undefined) query h2undef varianceX #testcase VarianceXErrorTestcase #yields error query h1d1 varianceX # * # * varianceY # * #testcase VarianceYTestcase #yields (bool TRUE) query intstream(1, 100000) use[ fun(i1:int) 5.0 ] transformstream create_histogram2d_equiwidth[Elem, Elem, 10, 10] varianceY < 0.0000001 #testcase VarianceY2Testcase #yields (bool TRUE) query (intstream(1, 1000000) use[ fun(i1:int) rng_gaussian(0.75) ] transformstream create_histogram2d_equicount[Elem, Elem, 1000, 1000] varianceY - (0.75 * 0.75)) < 0.1 #testcase VarianceYTestcase #yields (bool TRUE) query (intstream(1, 1000000) use[ fun(i1:int) rng_gaussian(12.3) ] transformstream create_histogram2d_equicount[Elem, Elem, 1000, 1000] varianceY - (12.3 * 12.3)) < 10 #testcase VarianceYTestcase #yields (bool TRUE) query (intstream(1, 1000000) use[ fun(i1:int) rng_gaussian(-7.5) ] transformstream create_histogram2d_equicount[Elem, Elem, 333, 333] varianceY - (-7.5 * -7.5)) < 10 #testcase VarianceYUndefTestcase #yields (real undefined) query h2undef varianceY #testcase VarianceYErrorTestcase #yields error query h1d1 varianceY #tolerance_real 0.0001 # * # * covariance # * #testcase CovarianceTestcase #yields (bool TRUE) query h2covar varianceX = h2covar covariance #testcase Covariance2Testcase #yields (bool TRUE) query h2covar varianceY = h2covar covariance #testcase Covariance3Testcase #yields (real 0.0) query h2covar2 covariance - h2covar3 covariance #testcase Covariance4Testcase #yields (real 0.0) query h2covar4 covariance - h2covar5 covariance #testcase CovarianceUndefTestcase #yields (real undefined) query h2undef covariance #testcase CovarianceErrorTestcase #yields error query h1undef covariance #teardown close database; delete database testhistdb;