def test_and(self): self.assertTrue((gt(0) & lt(5))(3)) self.assertFalse((lt(5) & gt(0))(5)) self.assertFalse((gt(0) & lt(5))(0)) self.assertFalse((gt(0) & lt(0))(1)) self.assertFalse((gt(0) & lt(0))(-1)) self.assertFalse((gt(0) & lt(0))(0)) self.assertTrue(( oftype(float) & gt(-1) & lt(10) & lt(9) & pred(lambda x: x%2) )(5.0)) self.assertFalse(( oftype(float) & gt(-1) & lt(10) & lt(9) & pred(lambda x: x%2) )(5)) self.assertFalse(( oftype(float) & gt(-1) & lt(10) & lt(9) & pred(lambda x: x%2) )(4.0)) self.assertFalse(( oftype(float) & gt(-1) & lt(10) & lt(9) & pred(lambda x: x%2) )(-4.0))
def test_or(self): self.assertTrue((gt(0) | eq(-42))(-42)) self.assertFalse((gt(0) | eq(-42))(-43)) self.assertTrue((gt(0) | lt(-5) | eq(-5) | oftype(float))(-3.0)) self.assertFalse((gt(0) | lt(-5) | eq(-5) | oftype(float))(-3)) self.assertTrue((gt(0) | lt(-5) | eq(-5) | oftype(float))(-5)) self.assertFalse((gt(0) | lt(-5) | eq(-5) | oftype(float))(-2)) for i in range(-5, 6): if i == 0: self.assertFalse((gt(0) | lt(0))(i)) else: self.assertTrue((gt(0) | lt(0))(i))
def test_or(self): self.assertTrue(( gt(0) | eq(-42) )(-42)) self.assertFalse(( gt(0) | eq(-42) )(-43)) self.assertTrue((gt(0) | lt(-5) | eq(-5) | oftype(float))(-3.0)) self.assertFalse((gt(0) | lt(-5) | eq(-5) | oftype(float))(-3)) self.assertTrue((gt(0) | lt(-5) | eq(-5) | oftype(float))(-5)) self.assertFalse((gt(0) | lt(-5) | eq(-5) | oftype(float))(-2)) for i in range(-5,6): if i == 0: self.assertFalse((gt(0) | lt(0))(i)) else: self.assertTrue((gt(0) | lt(0))(i))
def test_oftype(self): is_object = oftype(object) self.assertTrue(is_object('abc')) self.assertTrue(is_object(7)) self.assertTrue(is_object([])) self.assertTrue(is_object({})) is_int = oftype(int) self.assertTrue(is_int(5)) self.assertFalse(is_int(5.0)) self.assertFalse(is_int('baba'))
def test_and(self): self.assertTrue((gt(0) & lt(5))(3)) self.assertFalse((lt(5) & gt(0))(5)) self.assertFalse((gt(0) & lt(5))(0)) self.assertFalse((gt(0) & lt(0))(1)) self.assertFalse((gt(0) & lt(0))(-1)) self.assertFalse((gt(0) & lt(0))(0)) self.assertTrue((oftype(float) & gt(-1) & lt(10) & lt(9) & pred(lambda x: x % 2))(5.0)) self.assertFalse((oftype(float) & gt(-1) & lt(10) & lt(9) & pred(lambda x: x % 2))(5)) self.assertFalse((oftype(float) & gt(-1) & lt(10) & lt(9) & pred(lambda x: x % 2))(4.0)) self.assertFalse((oftype(float) & gt(-1) & lt(10) & lt(9) & pred(lambda x: x % 2))(-4.0))
def test_combination_implication(self): string_element=oftype(str) even_length=pred(lambda x: len(x) %2 == 0) self.assertTrue((string_element >> even_length)(2)) self.assertFalse((string_element >> even_length)("dyado")) self.assertTrue((string_element >> even_length)('baba'))
def test_combination_implication(self): string_element = oftype(str) even_length = pred(lambda x: len(x) % 2 == 0) self.assertTrue((string_element >> even_length)(2)) self.assertFalse((string_element >> even_length)("dyado")) self.assertTrue((string_element >> even_length)('baba'))
def test_combinations_conjunction(self): positive_integer = gt(0) & oftype(int) self.assertTrue(positive_integer(5)) self.assertFalse(positive_integer(1.5)) self.assertFalse(positive_integer(-1)) positive_even_integer = positive_integer & pred(lambda x: x % 2 == 0) self.assertTrue(positive_even_integer(6)) self.assertFalse(positive_even_integer(0)) self.assertFalse(positive_even_integer(3))
def tests_from_task(self): digit = oftype(int) & gt(-1) & lt(10) self.assertTrue(digit(5)) self.assertFalse(digit(-2)) self.assertFalse(digit("a")) binary = eq(0) | eq(1) self.assertTrue(binary(0)) self.assertFalse(binary(2)) number = for_any(oftype(int), oftype(float), oftype(complex)) self.assertTrue(number(10)) self.assertTrue(number(1 + 2j)) self.assertFalse(number("kiuftence")) is_the_empty_string = pred(lambda x: x is "") self.assertFalse(is_the_empty_string("me4ence")) self.assertFalse('') self.assertFalse("")
def test_combinations_conjunction(self): positive_integer=gt(0) & oftype(int) self.assertTrue(positive_integer(5)) self.assertFalse(positive_integer(1.5)) self.assertFalse(positive_integer(-1)) positive_even_integer=positive_integer & pred(lambda x: x % 2 == 0) self.assertTrue(positive_even_integer(6)) self.assertFalse(positive_even_integer(0)) self.assertFalse(positive_even_integer(3))
def tests_from_task(self): digit = oftype(int) & gt(-1) & lt(10) self.assertTrue(digit(5)) self.assertFalse(digit(-2)) self.assertFalse(digit("a")) binary = eq(0) | eq(1) self.assertTrue(binary(0)) self.assertFalse(binary(2)) number = for_any(oftype(int), oftype(float), oftype(complex)) self.assertTrue(number(10)) self.assertTrue(number(1+2j)) self.assertFalse(number("kiuftence")) is_the_empty_string = pred(lambda x: x is "") self.assertFalse(is_the_empty_string("me4ence")) self.assertFalse('') self.assertFalse("")
def test_combination_disjunction(self): negative_or_float = lt(0) | oftype(float) self.assertTrue(negative_or_float(-1)) self.assertTrue(negative_or_float(1.5)) self.assertFalse(negative_or_float(3)) neg_or_float_or_zero = negative_or_float | eq(0) self.assertTrue(neg_or_float_or_zero(0)) self.assertFalse(neg_or_float_or_zero(4)) self.assertTrue(neg_or_float_or_zero(1.5))
def test_combination_disjunction(self): negative_or_float=lt(0) | oftype(float) self.assertTrue(negative_or_float(-1)) self.assertTrue(negative_or_float(1.5)) self.assertFalse(negative_or_float(3)) neg_or_float_or_zero=negative_or_float | eq(0) self.assertTrue(neg_or_float_or_zero(0)) self.assertFalse(neg_or_float_or_zero(4)) self.assertTrue(neg_or_float_or_zero(1.5))
def test_oftype(self): class a: pass class b(a): pass self.assertTrue(oftype(int)(5)) self.assertFalse(oftype(int)(5.0)) self.assertTrue(oftype(float)(.0)) self.assertFalse(oftype(float)(0)) self.assertTrue(oftype(str)('5')) self.assertFalse(oftype(a)(b))
def test_invert(self): negative = ~gt(0) positive = ~lt(0) negative2 = ~positive positive2 = ~~~~positive self.assertTrue(negative(-1)) self.assertFalse(negative(1)) self.assertTrue(positive(1)) self.assertFalse(positive(-1)) self.assertTrue(negative2(-1)) self.assertFalse(negative2(1)) self.assertTrue(positive2(1)) self.assertFalse(positive2(-1)) non = ~present() self.assertTrue(non(None)) not_integer = ~oftype(int) self.assertTrue(not_integer(1 + 1j)) self.assertFalse(not_integer(1))
def test_invert(self): negative = ~gt(0) positive = ~lt(0) negative2 = ~positive positive2 = ~~~~positive self.assertTrue(negative(-1)) self.assertFalse(negative(1)) self.assertTrue(positive(1)) self.assertFalse(positive(-1)) self.assertTrue(negative2(-1)) self.assertFalse(negative2(1)) self.assertTrue(positive2(1)) self.assertFalse(positive2(-1)) non = ~present() self.assertTrue(non(None)) not_integer = ~oftype(int) self.assertTrue(not_integer(1+1j)) self.assertFalse(not_integer(1))
def test_oftype_predicate(self): float_num = oftype(float) self.assertTrue(float_num(1.5)) self.assertFalse(float_num(0)) self.assertFalse(float_num(1 + 2j))
def test_for_any(self): number=for_any(oftype(int), oftype(float), oftype(complex)) self.assertTrue(number(1)) self.assertTrue(number(1.3)) self.assertTrue(number(1+2j)) self.assertFalse(number("blah"))
def test_for_all(self): pos_even_integer=for_all(gt(0), pred(lambda x: x%2==0), oftype(int)) self.assertTrue(pos_even_integer(6)) self.assertFalse(pos_even_integer(1.5)) self.assertFalse(pos_even_integer(-1))
def test_for_any(self): number = for_any(oftype(int), oftype(float), oftype(complex)) self.assertTrue(number(1)) self.assertTrue(number(1.3)) self.assertTrue(number(1 + 2j)) self.assertFalse(number("blah"))
def test_for_all(self): pos_even_integer = for_all(gt(0), pred(lambda x: x % 2 == 0), oftype(int)) self.assertTrue(pos_even_integer(6)) self.assertFalse(pos_even_integer(1.5)) self.assertFalse(pos_even_integer(-1))
def test_oftype(self): self.assertTrue(oftype(complex)(1j)) self.assertTrue(oftype(object)(1j)) self.assertFalse(oftype(int)(1j))
def test_oftype_predicate(self): float_num=oftype(float) self.assertTrue(float_num(1.5)) self.assertFalse(float_num(0)) self.assertFalse(float_num(1+2j))