@@ -73,6 +73,12 @@ prop_array_primitive() ->
73
73
{oneof ([fix_array_primitive (), array16_primitive ()]), stable_opts ()},
74
74
pack_and_unpack (Array , Opts )).
75
75
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
+
76
82
prop_msgpack () ->
77
83
? FORALL ({Obj , Opts },
78
84
{msgpack_object (), stable_opts ()},
@@ -101,11 +107,7 @@ pack_and_unpack(Obj, Opts) ->
101
107
% %% Generators %%%
102
108
stable_opts () ->
103
109
% TODO: build property tests on options
104
- oneof ([
105
- [],
106
- [{map_format , jiffy }],
107
- [{map_format , jsx }]
108
- ]).
110
+ [].
109
111
110
112
null () -> null .
111
113
@@ -148,16 +150,34 @@ primitive_types() ->
148
150
149
151
150
152
container_types () ->
151
- [ fix_array_primitive (), array16_primitive () ].
153
+ [ fix_array_primitive (), array16_primitive (),
154
+ fix_map_primitive (), map16_primitive () ].
152
155
153
156
fix_array_primitive () ->
154
- % up to 2^4-1
157
+ % % up to 2^4-1
158
+ % % TODO: check the first 4 bits be 1001
155
159
resize (15 , proper_types :list (oneof (primitive_types ()))).
156
160
157
161
array16_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)
159
164
resize (128 , proper_types :list (oneof (primitive_types ()))).
160
165
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 ()))).
161
181
162
182
% % TODO: add map
163
183
msgpack_object () ->
0 commit comments