File tree 2 files changed +22
-1
lines changed
src/hypothesis/internal/conjecture
2 files changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -1271,7 +1271,7 @@ def redistribute_block_pairs(self, chooser):
1271
1271
return
1272
1272
1273
1273
if next_node .was_forced :
1274
- # avoid modifying a forced node! Note that it's fine for next_node
1274
+ # avoid modifying a forced node. Note that it's fine for next_node
1275
1275
# to be trivial, because we're going to explicitly make it *not*
1276
1276
# trivial by adding to its value.
1277
1277
return
Original file line number Diff line number Diff line change @@ -578,3 +578,24 @@ def shrinker(data):
578
578
shrinker .fixate_shrink_passes (["lower_blocks_together" ])
579
579
580
580
assert list (shrinker .buffer ) == [1 , 0 ] + [0 ] * n_gap + [0 , 1 ]
581
+
582
+
583
+ def test_redistribute_block_pairs_with_forced_node ():
584
+ @run_to_buffer
585
+ def buf (data ):
586
+ data .draw_integer (0 , 100 , forced = 15 )
587
+ data .draw_integer (0 , 100 , forced = 10 )
588
+ data .mark_interesting ()
589
+
590
+ @shrinking_from (buf )
591
+ def shrinker (data ):
592
+ n1 = data .draw_integer (0 , 100 )
593
+ n2 = data .draw_integer (0 , 100 , forced = 10 )
594
+ if n1 + n2 > 20 :
595
+ data .mark_interesting ()
596
+
597
+ shrinker .fixate_shrink_passes (["redistribute_block_pairs" ])
598
+ # redistribute_block_pairs shouldn't try modifying forced nodes while
599
+ # shrinking. Since the second draw is forced, this isn't possible to shrink
600
+ # with just this pass.
601
+ assert shrinker .buffer == buf
You can’t perform that action at this time.
0 commit comments