'Hashes of different deployments do not have hash collisions, hashes of
the same object have the same hash.'

@given(st.data())
def test_no_hash_collisions(self, data):

    deployment_a = data.draw(deployment_strategy())
    simple_comparison = data.draw(st.booleans())
    if simple_comparison:
        deployment_b = wire_decode(wire_encode(deployment_a))
    else:
        deployment_b = data.draw(deployment_strategy())
    should_be_equal = (deployment_a == deployment_b)
    if simple_comparison:
        self.assertThat(should_be_equal, Is(True))
    hash_a = generation_hash(deployment_a)
    hash_b = generation_hash(deployment_b)
    if should_be_equal:
        self.assertThat(hash_a, Equals(hash_b))
    else:
        self.assertThat(hash_a, Not(Equals(hash_b)))
