1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
# This test code was written by the `hypothesis.extra.ghostwriter` module
# and is provided under the Creative Commons Zero public domain dedication.
import operator
from hypothesis import given, strategies as st
# TODO: replace st.nothing() with an appropriate strategy
mul_operands = st.nothing()
@given(a=mul_operands, b=mul_operands, c=mul_operands)
def test_associative_binary_operation_mul(a, b, c):
left = operator.mul(a, operator.mul(b, c))
right = operator.mul(operator.mul(a, b), c)
assert left == right, (left, right)
@given(a=mul_operands, b=mul_operands)
def test_commutative_binary_operation_mul(a, b):
left = operator.mul(a, b)
right = operator.mul(b, a)
assert left == right, (left, right)
@given(a=mul_operands)
def test_identity_binary_operation_mul(a):
identity = 1
assert a == operator.mul(a, identity)
assert a == operator.mul(identity, a)
@given(a=mul_operands, b=mul_operands, c=mul_operands)
def test_add_distributes_over_binary_operation_mul(a, b, c):
left = operator.mul(a, operator.add(b, c))
ldist = operator.add(operator.mul(a, b), operator.mul(a, c))
assert ldist == left, (ldist, left)
right = operator.mul(operator.add(a, b), c)
rdist = operator.add(operator.mul(a, c), operator.mul(b, c))
assert rdist == right, (rdist, right)
|