How to use clear_change_tracking method in hypothesis

Best Python code snippet using hypothesis

engine.py

Source:engine.py Github

copy

Full Screen

...1601 new_blocks[i] = int_to_bytes(v + o, len(blocked[i]))1602 return self.incorporate_new_buffer(hbytes().join(new_blocks))1603 new_offset = Integer.shrink(offset, reoffset, random=self.random)1604 if new_offset == offset:1605 self.clear_change_tracking()1606 def shrink_offset_pairs(self):1607 """Lower any two blocks offset from each other the same ammount.1608 Before this shrink pass, two blocks explicitly offset from each1609 other would not get minimized properly:1610 >>> b = st.integers(0, 255)1611 >>> find(st.tuples(b, b), lambda x: x[0] == x[1] + 1)1612 (149,148)1613 This expensive (O(n^2)) pass goes through every pair of non-zero1614 blocks in the current shrink target and sees if the shrink1615 target can be improved by applying an offset to both of them.1616 """1617 current = [self.shrink_target.buffer[u:v] for u, v in self.blocks]1618 def int_from_block(i):1619 return int_from_bytes(current[i])1620 def block_len(i):1621 u, v = self.blocks[i]1622 return v - u1623 # Try reoffseting every pair1624 def reoffset_pair(pair, o):1625 n = len(self.blocks)1626 # Number of blocks may have changed, need to validate1627 valid_pair = [1628 p for p in pair if p < n and int_from_block(p) > 0 and1629 self.is_payload_block(p)1630 ]1631 if len(valid_pair) < 2:1632 return1633 m = min([int_from_block(p) for p in valid_pair])1634 new_blocks = [self.shrink_target.buffer[u:v]1635 for u, v in self.blocks]1636 for i in valid_pair:1637 new_blocks[i] = int_to_bytes(1638 int_from_block(i) + o - m, block_len(i))1639 buffer = hbytes().join(new_blocks)1640 return self.incorporate_new_buffer(buffer)1641 i = 01642 while i < len(self.blocks):1643 if self.is_payload_block(i) and int_from_block(i) > 0:1644 j = i + 11645 while j < len(self.shrink_target.blocks):1646 block_val = int_from_block(j)1647 i_block_val = int_from_block(i)1648 if self.is_payload_block(j) \1649 and block_val > 0 and i_block_val > 0:1650 offset = min(int_from_block(i),1651 int_from_block(j))1652 # Save current before shrinking1653 current = [self.shrink_target.buffer[u:v]1654 for u, v in self.blocks]1655 Integer.shrink(1656 offset, lambda o: reoffset_pair((i, j), o),1657 random=self.random1658 )1659 j += 11660 i += 11661 def mark_shrinking(self, blocks):1662 """Mark each of these blocks as a shrinking block: That is, lowering1663 its value lexicographically may cause less data to be drawn after."""1664 t = self.shrink_target1665 for i in blocks:1666 if self.__shrinking_block_cache.get(i) is True:1667 continue1668 self.__shrinking_block_cache[i] = True1669 prefix = t.buffer[:t.blocks[i][0]]1670 self.__shrinking_prefixes.add(prefix)1671 def clear_change_tracking(self):1672 self.__changed_blocks.clear()1673 def mark_changed(self, i):1674 self.__changed_blocks.add(i)1675 def update_shrink_target(self, new_target):1676 assert new_target.frozen1677 if self.shrink_target is not None:1678 current = self.shrink_target.buffer1679 new = new_target.buffer1680 assert sort_key(new) < sort_key(current)1681 self.shrinks += 11682 if new_target.blocks != self.shrink_target.blocks:1683 self.clear_change_tracking()1684 else:1685 for i, (u, v) in enumerate(self.shrink_target.blocks):1686 if (1687 i not in self.__changed_blocks and1688 current[u:v] != new[u:v]1689 ):1690 self.mark_changed(i)1691 else:1692 self.__changed_blocks = set()1693 self.shrink_target = new_target1694 self.__shrinking_block_cache = {}1695 def try_shrinking_blocks(self, blocks, b):1696 """Attempts to replace each block in the blocks list with b. Returns1697 True if it succeeded (which may include some additional modifications...

Full Screen

Full Screen

shrinker.py

Source:shrinker.py Github

copy

Full Screen

...643 for i, v in zip(changed, ints):644 new_blocks[i] = int_to_bytes(v + o, len(blocked[i]))645 return self.incorporate_new_buffer(b"".join(new_blocks))646 Integer.shrink(offset, reoffset, random=self.random)647 self.clear_change_tracking()648 def clear_change_tracking(self):649 self.__last_checked_changed_at = self.shrink_target650 self.__all_changed_blocks = set()651 def mark_changed(self, i):652 self.__changed_blocks.add(i)653 @property654 def __changed_blocks(self):655 if self.__last_checked_changed_at is not self.shrink_target:656 prev_target = self.__last_checked_changed_at657 new_target = self.shrink_target658 assert prev_target is not new_target659 prev = prev_target.buffer660 new = new_target.buffer661 assert sort_key(new) < sort_key(prev)662 if (...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run hypothesis automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful