@@ -159,7 +159,18 @@ let gen_deconstructible gen print eq = GenDeconstr (gen,print,eq)
159
159
160
160
let qcheck_nat64_small = QCheck. (map Int64. of_int small_nat)
161
161
162
- let bytes_small_printable = QCheck. bytes_small_of QCheck.Gen. printable
162
+ (* QCheck's string shrinker reduces each char repeatedly which is too excessive for Lin *)
163
+ let shrink_char c = QCheck. (if c = 'a' then Iter. empty else Iter. return 'a' )
164
+ let shrink_string = QCheck.Shrink. string ~shrink: shrink_char
165
+ let shrink_bytes = QCheck.Shrink. bytes ~shrink: shrink_char
166
+
167
+ let string = QCheck. (set_shrink shrink_string string )
168
+ let string_small = QCheck. (set_shrink shrink_string small_string)
169
+ let string_small_printable = QCheck. (set_shrink shrink_string small_printable_string)
170
+
171
+ let bytes = QCheck. (set_shrink shrink_bytes bytes)
172
+ let bytes_small = QCheck. (set_shrink shrink_bytes bytes_small)
173
+ let bytes_small_printable = QCheck. (set_shrink shrink_bytes (bytes_small_of Gen. printable))
163
174
164
175
let unit = GenDeconstr (QCheck. unit , QCheck.Print. unit , (= ))
165
176
let bool = GenDeconstr (QCheck. bool , QCheck.Print. bool , (= ))
@@ -174,11 +185,11 @@ let int32 = GenDeconstr (QCheck.int32, Int32.to_string, Int3
174
185
let int64 = GenDeconstr (QCheck. int64 , Int64. to_string, Int64. equal)
175
186
let nat64_small = GenDeconstr (qcheck_nat64_small, Int64. to_string, Int64. equal)
176
187
let float = GenDeconstr (QCheck. float , QCheck.Print. float , Float. equal)
177
- let string = GenDeconstr (QCheck. string , QCheck.Print. string , String. equal)
178
- let string_small = GenDeconstr (QCheck. small_string, QCheck.Print. string , String. equal)
179
- let string_small_printable = GenDeconstr (QCheck. small_printable_string , QCheck.Print. string , String. equal)
180
- let bytes = GenDeconstr (QCheck. bytes, QCheck.Print. bytes, Bytes. equal)
181
- let bytes_small = GenDeconstr (QCheck. bytes_small, QCheck.Print. bytes, Bytes. equal)
188
+ let string = GenDeconstr (string , QCheck.Print. string , String. equal)
189
+ let string_small = GenDeconstr (string_small, QCheck.Print. string , String. equal)
190
+ let string_small_printable = GenDeconstr (string_small_printable , QCheck.Print. string , String. equal)
191
+ let bytes = GenDeconstr (bytes, QCheck.Print. bytes, Bytes. equal)
192
+ let bytes_small = GenDeconstr (bytes_small, QCheck.Print. bytes, Bytes. equal)
182
193
let bytes_small_printable = GenDeconstr (bytes_small_printable, QCheck.Print. bytes, Bytes. equal)
183
194
184
195
let option : type a c s. ?ratio:float -> (a, c, s, combinable) ty -> (a option, c, s, combinable) ty =
0 commit comments