@@ -2859,6 +2859,96 @@ end
28592859
28602860 # ## to_buffers ###########################################################
28612861
2862+ begin
2863+ layout = AwkwardArray. PrimitiveArray ([true , false , true , false ])
2864+ form, len, containers = AwkwardArray. to_buffers (layout)
2865+
2866+ @test JSON. parse (form) == JSON. parse (
2867+ """ {"class": "NumpyArray", "primitive": "bool", "inner_shape": [], "parameters": {}, "form_key": "node0"}""" ,
2868+ )
2869+ @test len == 4
2870+ @test containers == Dict {String,Vector{UInt8}} (
2871+ " node0-data" => Vector {UInt8} (
2872+ b "\x 01\x 00\x 01\x 00" ,
2873+ ),
2874+ )
2875+ end
2876+
2877+ begin
2878+ layout = AwkwardArray. PrimitiveArray ([Int8 (- 1 ), Int8 (0 ), Int8 (- 33 ), Int8 (66 )])
2879+ form, len, containers = AwkwardArray. to_buffers (layout)
2880+
2881+ @test JSON. parse (form) == JSON. parse (
2882+ """ {"class": "NumpyArray", "primitive": "int8", "inner_shape": [], "parameters": {}, "form_key": "node0"}""" ,
2883+ )
2884+ @test len == 4
2885+ @test containers == Dict {String,Vector{UInt8}} (
2886+ " node0-data" => Vector {UInt8} (
2887+ b "\x ff\x 00\x df\x 42" ,
2888+ ),
2889+ )
2890+ end
2891+
2892+ begin
2893+ layout = AwkwardArray. PrimitiveArray ([Int16 (- 1 ), Int16 (0 ), Int16 (- 33 ), Int16 (66 )])
2894+ form, len, containers = AwkwardArray. to_buffers (layout)
2895+
2896+ @test JSON. parse (form) == JSON. parse (
2897+ """ {"class": "NumpyArray", "primitive": "int16", "inner_shape": [], "parameters": {}, "form_key": "node0"}""" ,
2898+ )
2899+ @test len == 4
2900+ @test containers == Dict {String,Vector{UInt8}} (
2901+ " node0-data" => Vector {UInt8} (
2902+ b "\x ff\x ff\x 00\x 00\x df\x ff\x 42\x 00" ,
2903+ ),
2904+ )
2905+ end
2906+
2907+ begin
2908+ layout = AwkwardArray. PrimitiveArray ([UInt16 (1 ), UInt16 (0 ), UInt16 (33 ), UInt16 (66 )])
2909+ form, len, containers = AwkwardArray. to_buffers (layout)
2910+
2911+ @test JSON. parse (form) == JSON. parse (
2912+ """ {"class": "NumpyArray", "primitive": "uint16", "inner_shape": [], "parameters": {}, "form_key": "node0"}""" ,
2913+ )
2914+ @test len == 4
2915+ @test containers == Dict {String,Vector{UInt8}} (
2916+ " node0-data" => Vector {UInt8} (
2917+ b "\x 01\x 00\x 00\x 00\x 21\x 00\x 42\x 00" ,
2918+ ),
2919+ )
2920+ end
2921+
2922+ begin
2923+ layout = AwkwardArray. PrimitiveArray ([Int32 (- 1 ), Int32 (0 ), Int32 (- 33 ), Int32 (66 )])
2924+ form, len, containers = AwkwardArray. to_buffers (layout)
2925+
2926+ @test JSON. parse (form) == JSON. parse (
2927+ """ {"class": "NumpyArray", "primitive": "int32", "inner_shape": [], "parameters": {}, "form_key": "node0"}""" ,
2928+ )
2929+ @test len == 4
2930+ @test containers == Dict {String,Vector{UInt8}} (
2931+ " node0-data" => Vector {UInt8} (
2932+ b "\x ff\x ff\x ff\x ff\x 00\x 00\x 00\x 00\x df\x ff\x ff\x ff\x 42\x 00\x 00\x 00" ,
2933+ ),
2934+ )
2935+ end
2936+
2937+ begin
2938+ layout = AwkwardArray. PrimitiveArray ([UInt32 (1 ), UInt32 (0 ), UInt32 (33 ), Int32 (66 )])
2939+ form, len, containers = AwkwardArray. to_buffers (layout)
2940+
2941+ @test JSON. parse (form) == JSON. parse (
2942+ """ {"class": "NumpyArray", "primitive": "uint32", "inner_shape": [], "parameters": {}, "form_key": "node0"}""" ,
2943+ )
2944+ @test len == 4
2945+ @test containers == Dict {String,Vector{UInt8}} (
2946+ " node0-data" => Vector {UInt8} (
2947+ b "\x 01\x 00\x 00\x 00\x 00\x 00\x 00\x 00\x 21\x 00\x 00\x 00\x 42\x 00\x 00\x 00" ,
2948+ ),
2949+ )
2950+ end
2951+
28622952 begin
28632953 layout = AwkwardArray. PrimitiveArray ([1.1 , 2.2 , 3.3 , 4.4 , 5.5 ])
28642954 form, len, containers = AwkwardArray. to_buffers (layout)
@@ -2890,6 +2980,20 @@ end
28902980 ),
28912981 )
28922982 end
2983+
2984+ begin
2985+ layout = AwkwardArray. PrimitiveArray ([1 + 1im , 0 + 0.2im , - 3.3 + 0.1im , 66 ])
2986+ form, len, containers = AwkwardArray. to_buffers (layout)
2987+ @test JSON. parse (form) == JSON. parse (
2988+ """ {"class": "NumpyArray", "primitive": "complex128", "inner_shape": [], "parameters": {}, "form_key": "node0"}""" ,
2989+ )
2990+ @test len == 4
2991+ @test containers == Dict {String,Vector{UInt8}} (
2992+ " node0-data" => Vector {UInt8} (
2993+ b "\x 00\x 00\x 00\x 00\x 00\x 00\x f0\x 3f\x 00\x 00\x 00\x 00\x 00\x 00\x f0\x 3f\x 00\x 00\x 00\x 00\x 00\x 00\x 00\x 00\x 9a\x 99\x 99\x 99\x 99\x 99\x c9\x 3f\x 66\x 66\x 66\x 66\x 66\x 66\x 0a\x c0\x 9a\x 99\x 99\x 99\x 99\x 99\x b9\x 3f\x 00\x 00\x 00\x 00\x 00\x 80\x 50\x 40\x 00\x 00\x 00\x 00\x 00\x 00\x 00\x 00" ,
2994+ ),
2995+ )
2996+ end
28932997
28942998 begin
28952999 layout = AwkwardArray. EmptyArray ()
@@ -3158,16 +3262,39 @@ end
31583262 " node5-data" => Vector {UInt8} (b " five" ),
31593263 )
31603264 end
3265+ end
3266+
3267+ @testset " Parameters compatible tests" begin
3268+ begin
3269+ doc_parameters = AwkwardArray. Parameters (" __doc__" => " nice list" )
3270+
3271+ nice_list_layout = AwkwardArray. ListOffsetArray (
3272+ [0 , 3 , 3 , 8 ],
3273+ AwkwardArray. PrimitiveArray ([0x68 , 0x65 , 0x79 , 0x74 , 0x68 , 0x65 , 0x72 , 0x65 ],),
3274+ parameters = AwkwardArray. Parameters (" __doc__" => " nice list" ),
3275+ )
3276+
3277+ not_so_nice_list_layout = AwkwardArray. ListOffsetArray (
3278+ [0 , 3 , 3 , 8 ],
3279+ AwkwardArray. PrimitiveArray ([0x68 , 0x65 , 0x79 , 0x74 , 0x68 , 0x65 , 0x72 , 0x65 ],),
3280+ parameters = AwkwardArray. Parameters (" __array__" => " not so nice list" ),
3281+ )
3282+
3283+ @test AwkwardArray. compatible (nice_list_layout. parameters, not_so_nice_list_layout. parameters) == false
3284+ @test AwkwardArray. compatible (doc_parameters, nice_list_layout. parameters) == true
3285+ end
3286+
3287+ end # @testset "AwkwardArray.jl"
31613288
3162- @testset " Tables.jl intergration" begin
3289+ @testset " Tables.jl intergration" begin
3290+ begin
31633291 df = (; x = [[1 ], [2 ], [1 , 2 , 3 ]], y = [4.0 , 5 , 6 ])
31643292 awt = AwkwardArray. from_table (df)
31653293 @test Tables. schema (df) == Tables. schema (awt)
31663294
31673295 @test df. x == AwkwardArray. to_vector (awt[:x ])
31683296 @test df. y == AwkwardArray. to_vector (awt[:y ])
31693297 end
3170-
3171- end # @testset "AwkwardArray.jl"
3298+ end # @testset "Tables.jl"
31723299
31733300include (" ./runpytests.jl" )
0 commit comments