@@ -30,6 +30,7 @@ func testModule() Module {
3030 must (m .Register ("enrich" , enrich ))
3131 must (m .Register ("error" , errorfunc ))
3232 must (m .Register ("error1" , errorfunc1 ))
33+ must (m .Register ("toNumbers" , toNumbers ))
3334 return m
3435}
3536
@@ -49,9 +50,9 @@ func errorfunc1(_ Table) (String, error) {
4950 return "" , errors .New ("throwing error" )
5051}
5152
52- func hash (s String ) (Number , error ) {
53+ func hash (s Value ) (Number , error ) {
5354 h := fnv .New32a ()
54- h .Write ([]byte (s ))
55+ h .Write ([]byte (s .( String ) ))
5556
5657 return Number (h .Sum32 ()), nil
5758}
@@ -79,6 +80,15 @@ func enrich(name String, request Table) (Table, error) {
7980 return request , nil
8081}
8182
83+ func toNumbers (v Value ) (Numbers , error ) {
84+ switch t := v .(type ) {
85+ case Numbers :
86+ return t , nil
87+ default :
88+ return nil , fmt .Errorf ("unsupported type %T" , v )
89+ }
90+ }
91+
8292func Test_Join (t * testing.T ) {
8393 s , err := newScript ("fixtures/join.lua" )
8494 assert .NoError (t , err )
@@ -230,3 +240,13 @@ func TestUserdata(t *testing.T) {
230240 assert .NoError (t , err )
231241 assert .Equal (t , String ("table" ), out )
232242}
243+
244+ func Test_Any (t * testing.T ) {
245+ s , err := newScript ("fixtures/any.lua" )
246+ assert .NoError (t , err )
247+
248+ out , err := s .Run (context .Background (), []float64 {1.1 , 2.1 })
249+ assert .NoError (t , err )
250+ assert .Equal (t , TypeNumbers , out .Type ())
251+ assert .Equal (t , []float64 {1.1 , 2.1 }, out .Native ())
252+ }
0 commit comments