@@ -73,6 +73,12 @@ prop_array_primitive() ->
7373 {oneof ([fix_array_primitive (), array16_primitive ()]), stable_opts ()},
7474 pack_and_unpack (Array , Opts )).
7575
76+ prop_map_primitive () ->
77+ ? FORALL (
78+ {Map , Opts },
79+ {oneof ([fix_map_primitive (), map16_primitive ()]), stable_opts ()},
80+ pack_and_unpack (Map , Opts )).
81+
7682prop_msgpack () ->
7783 ? FORALL ({Obj , Opts },
7884 {msgpack_object (), stable_opts ()},
@@ -101,11 +107,7 @@ pack_and_unpack(Obj, Opts) ->
101107% %% Generators %%%
102108stable_opts () ->
103109 % TODO: build property tests on options
104- oneof ([
105- [],
106- [{map_format , jiffy }],
107- [{map_format , jsx }]
108- ]).
110+ [].
109111
110112null () -> null .
111113
@@ -148,16 +150,34 @@ primitive_types() ->
148150
149151
150152container_types () ->
151- [ fix_array_primitive (), array16_primitive () ].
153+ [ fix_array_primitive (), array16_primitive (),
154+ fix_map_primitive (), map16_primitive () ].
152155
153156fix_array_primitive () ->
154- % up to 2^4-1
157+ % % up to 2^4-1
158+ % % TODO: check the first 4 bits be 1001
155159 resize (15 , proper_types :list (oneof (primitive_types ()))).
156160
157161array16_primitive () ->
158- % Up to 2^16-1, but for performance
162+ % % Up to 2^16-1, but for performance
163+ % % TODO: check the first byte be 0xdc (so s 0xdd for array32)
159164 resize (128 , proper_types :list (oneof (primitive_types ()))).
160165
166+ fix_map_primitive () ->
167+ % % up to 2^4-1
168+ % % TODO: check the first 4 bits be 1000
169+ resize (15 ,
170+ proper_types :map (
171+ oneof (primitive_types ()),
172+ oneof (primitive_types ()))).
173+
174+ map16_primitive () ->
175+ % % Up to 2^16-1, but for performance
176+ % % TODO: check the first byte be 0xde (so s 0xdf for map32)
177+ resize (128 ,
178+ proper_types :map (
179+ oneof (primitive_types ()),
180+ oneof (primitive_types ()))).
161181
162182% % TODO: add map
163183msgpack_object () ->
0 commit comments