go-hep.org/x/hep@v0.38.1/groot/rtree/rfunc/rfunc_f32_gen_test.go (about) 1 // Copyright ©2020 The go-hep Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Automatically generated. DO NOT EDIT. 6 7 package rfunc 8 9 import ( 10 "reflect" 11 "testing" 12 ) 13 14 func TestFuncToF32(t *testing.T) { 15 16 var rvars []string 17 18 fct := func() float32 { 19 return 42 20 } 21 22 form := NewFuncToF32(rvars, fct) 23 24 if got, want := form.RVars(), rvars; !reflect.DeepEqual(got, want) { 25 t.Fatalf("invalid rvars: got=%#v, want=%#v", got, want) 26 } 27 28 var ptrs []any 29 30 { 31 bad := make([]any, 1) 32 err := form.Bind(bad) 33 if err == nil { 34 t.Fatalf("expected an error for invalid args length") 35 } 36 } 37 38 err := form.Bind(ptrs) 39 if err != nil { 40 t.Fatalf("could not bind formula: %+v", err) 41 } 42 43 got := form.Func().(func() float32)() 44 if got, want := got, float32(42); !reflect.DeepEqual(got, want) { 45 t.Fatalf("invalid output:\ngot= %v (%T)\nwant=%v (%T)", got, got, want, want) 46 } 47 } 48 49 func TestFuncF32ToF32(t *testing.T) { 50 51 rvars := make([]string, 1) 52 rvars[0] = "name-0" 53 54 fct := func(arg00 float32) float32 { 55 return 42 56 } 57 58 form := NewFuncF32ToF32(rvars, fct) 59 60 if got, want := form.RVars(), rvars; !reflect.DeepEqual(got, want) { 61 t.Fatalf("invalid rvars: got=%#v, want=%#v", got, want) 62 } 63 64 ptrs := make([]any, 1) 65 ptrs[0] = new(float32) 66 67 { 68 bad := make([]any, len(ptrs)) 69 copy(bad, ptrs) 70 for i := len(ptrs) - 1; i >= 0; i-- { 71 bad[i] = any(nil) 72 err := form.Bind(bad) 73 if err == nil { 74 t.Fatalf("expected an error for empty iface") 75 } 76 } 77 bad = append(bad, any(nil)) 78 err := form.Bind(bad) 79 if err == nil { 80 t.Fatalf("expected an error for invalid args length") 81 } 82 } 83 84 err := form.Bind(ptrs) 85 if err != nil { 86 t.Fatalf("could not bind formula: %+v", err) 87 } 88 89 got := form.Func().(func() float32)() 90 if got, want := got, float32(42); !reflect.DeepEqual(got, want) { 91 t.Fatalf("invalid output:\ngot= %v (%T)\nwant=%v (%T)", got, got, want, want) 92 } 93 } 94 95 func TestFuncF32F32ToF32(t *testing.T) { 96 97 rvars := make([]string, 2) 98 rvars[0] = "name-0" 99 rvars[1] = "name-1" 100 101 fct := func(arg00 float32, arg01 float32) float32 { 102 return 42 103 } 104 105 form := NewFuncF32F32ToF32(rvars, fct) 106 107 if got, want := form.RVars(), rvars; !reflect.DeepEqual(got, want) { 108 t.Fatalf("invalid rvars: got=%#v, want=%#v", got, want) 109 } 110 111 ptrs := make([]any, 2) 112 ptrs[0] = new(float32) 113 ptrs[1] = new(float32) 114 115 { 116 bad := make([]any, len(ptrs)) 117 copy(bad, ptrs) 118 for i := len(ptrs) - 1; i >= 0; i-- { 119 bad[i] = any(nil) 120 err := form.Bind(bad) 121 if err == nil { 122 t.Fatalf("expected an error for empty iface") 123 } 124 } 125 bad = append(bad, any(nil)) 126 err := form.Bind(bad) 127 if err == nil { 128 t.Fatalf("expected an error for invalid args length") 129 } 130 } 131 132 err := form.Bind(ptrs) 133 if err != nil { 134 t.Fatalf("could not bind formula: %+v", err) 135 } 136 137 got := form.Func().(func() float32)() 138 if got, want := got, float32(42); !reflect.DeepEqual(got, want) { 139 t.Fatalf("invalid output:\ngot= %v (%T)\nwant=%v (%T)", got, got, want, want) 140 } 141 } 142 143 func TestFuncF32F32F32ToF32(t *testing.T) { 144 145 rvars := make([]string, 3) 146 rvars[0] = "name-0" 147 rvars[1] = "name-1" 148 rvars[2] = "name-2" 149 150 fct := func(arg00 float32, arg01 float32, arg02 float32) float32 { 151 return 42 152 } 153 154 form := NewFuncF32F32F32ToF32(rvars, fct) 155 156 if got, want := form.RVars(), rvars; !reflect.DeepEqual(got, want) { 157 t.Fatalf("invalid rvars: got=%#v, want=%#v", got, want) 158 } 159 160 ptrs := make([]any, 3) 161 ptrs[0] = new(float32) 162 ptrs[1] = new(float32) 163 ptrs[2] = new(float32) 164 165 { 166 bad := make([]any, len(ptrs)) 167 copy(bad, ptrs) 168 for i := len(ptrs) - 1; i >= 0; i-- { 169 bad[i] = any(nil) 170 err := form.Bind(bad) 171 if err == nil { 172 t.Fatalf("expected an error for empty iface") 173 } 174 } 175 bad = append(bad, any(nil)) 176 err := form.Bind(bad) 177 if err == nil { 178 t.Fatalf("expected an error for invalid args length") 179 } 180 } 181 182 err := form.Bind(ptrs) 183 if err != nil { 184 t.Fatalf("could not bind formula: %+v", err) 185 } 186 187 got := form.Func().(func() float32)() 188 if got, want := got, float32(42); !reflect.DeepEqual(got, want) { 189 t.Fatalf("invalid output:\ngot= %v (%T)\nwant=%v (%T)", got, got, want, want) 190 } 191 }