55from . import RNG
66
77
8- def test_evaluate ():
9- # create functions and histograms
8+ def test_evaluate_func ():
109 f1 = ROOT .TF1 ("f1" , "x" )
1110 f2 = ROOT .TF2 ("f2" , "x*y" )
1211 f3 = ROOT .TF3 ("f3" , "x*y*z" )
13- h1 = ROOT .TH1D ("h1" , "" , 10 , 0 , 1 )
14- h1 .FillRandom ("f1" )
15- h2 = ROOT .TH2D ("h2" , "" , 10 , 0 , 1 , 10 , 0 , 1 )
16- h2 .FillRandom ("f2" )
17- h3 = ROOT .TH3D ("h3" , "" , 10 , 0 , 1 , 10 , 0 , 1 , 10 , 0 , 1 )
18- h3 .FillRandom ("f3" )
12+
1913 # generate random arrays
2014 arr_1d = RNG .rand (5 )
2115 arr_2d = RNG .rand (5 , 2 )
2216 arr_3d = RNG .rand (5 , 3 )
2317 arr_4d = RNG .rand (5 , 4 )
24- # evaluate the functions
18+
2519 assert_array_equal (rnp .evaluate (f1 , arr_1d ),
2620 [f1 .Eval (x ) for x in arr_1d ])
2721 assert_array_equal (rnp .evaluate (f1 .GetTitle (), arr_1d ),
@@ -38,14 +32,46 @@ def test_evaluate():
3832 f4 = ROOT .TFormula ('test' , 'x*y+z*t' )
3933 assert_array_equal (rnp .evaluate (f4 , arr_4d ),
4034 [f4 .Eval (* x ) for x in arr_4d ])
41- # evaluate the histograms
35+
36+ assert_raises (ValueError , rnp .evaluate , f1 , arr_2d )
37+ assert_raises (ValueError , rnp .evaluate , f2 , arr_3d )
38+ assert_raises (ValueError , rnp .evaluate , f2 , arr_1d )
39+ assert_raises (ValueError , rnp .evaluate , f3 , arr_1d )
40+ assert_raises (ValueError , rnp .evaluate , f3 , arr_2d )
41+
42+ assert_raises (ValueError , rnp .evaluate , "f" , arr_1d )
43+ assert_raises (ValueError , rnp .evaluate , "x*y" , arr_1d )
44+ assert_raises (ValueError , rnp .evaluate , "x" , arr_2d )
45+ assert_raises (ValueError , rnp .evaluate , "x*y" , arr_3d )
46+
47+
48+ def test_evaluate_hist ():
49+ h1 = ROOT .TH1D ("h1" , "" , 10 , 0 , 1 )
50+ h1 .FillRandom ("f1" )
51+ h2 = ROOT .TH2D ("h2" , "" , 10 , 0 , 1 , 10 , 0 , 1 )
52+ h2 .FillRandom ("f2" )
53+ h3 = ROOT .TH3D ("h3" , "" , 10 , 0 , 1 , 10 , 0 , 1 , 10 , 0 , 1 )
54+ h3 .FillRandom ("f3" )
55+
56+ arr_1d = RNG .rand (5 )
57+ arr_2d = RNG .rand (5 , 2 )
58+ arr_3d = RNG .rand (5 , 3 )
59+
4260 assert_array_equal (rnp .evaluate (h1 , arr_1d ),
4361 [h1 .GetBinContent (h1 .FindBin (x )) for x in arr_1d ])
4462 assert_array_equal (rnp .evaluate (h2 , arr_2d ),
4563 [h2 .GetBinContent (h2 .FindBin (* x )) for x in arr_2d ])
4664 assert_array_equal (rnp .evaluate (h3 , arr_3d ),
4765 [h3 .GetBinContent (h3 .FindBin (* x )) for x in arr_3d ])
48- # create a graph
66+
67+ assert_raises (ValueError , rnp .evaluate , h1 , arr_2d )
68+ assert_raises (ValueError , rnp .evaluate , h2 , arr_3d )
69+ assert_raises (ValueError , rnp .evaluate , h2 , arr_1d )
70+ assert_raises (ValueError , rnp .evaluate , h3 , arr_1d )
71+ assert_raises (ValueError , rnp .evaluate , h3 , arr_2d )
72+
73+
74+ def test_evaluate_graph ():
4975 g = ROOT .TGraph (2 )
5076 g .SetPoint (0 , 0 , 1 )
5177 g .SetPoint (1 , 1 , 2 )
@@ -54,20 +80,7 @@ def test_evaluate():
5480 assert_array_equal (rnp .evaluate (s , [0 , .5 , 1 ]),
5581 [s .Eval (x ) for x in [0 , .5 , 1 ]])
5682 # test exceptions
83+ arr_2d = RNG .rand (5 , 2 )
5784 assert_raises (TypeError , rnp .evaluate , object (), [1 , 2 , 3 ])
58- assert_raises (ValueError , rnp .evaluate , h1 , arr_2d )
59- assert_raises (ValueError , rnp .evaluate , h2 , arr_3d )
60- assert_raises (ValueError , rnp .evaluate , h2 , arr_1d )
61- assert_raises (ValueError , rnp .evaluate , h3 , arr_1d )
62- assert_raises (ValueError , rnp .evaluate , h3 , arr_2d )
63- assert_raises (ValueError , rnp .evaluate , f1 , arr_2d )
64- assert_raises (ValueError , rnp .evaluate , f2 , arr_3d )
65- assert_raises (ValueError , rnp .evaluate , f2 , arr_1d )
66- assert_raises (ValueError , rnp .evaluate , f3 , arr_1d )
67- assert_raises (ValueError , rnp .evaluate , f3 , arr_2d )
6885 assert_raises (ValueError , rnp .evaluate , g , arr_2d )
6986 assert_raises (ValueError , rnp .evaluate , s , arr_2d )
70- assert_raises (ValueError , rnp .evaluate , "f" , arr_1d )
71- assert_raises (ValueError , rnp .evaluate , "x*y" , arr_1d )
72- assert_raises (ValueError , rnp .evaluate , "x" , arr_2d )
73- assert_raises (ValueError , rnp .evaluate , "x*y" , arr_3d )
0 commit comments