import unittest from ezsequence import * class TestAll(unittest.TestCase): def number_names(self): return \ { 1: "One", 2: "Two", 3: "Three", 4: "Four", 5: "Five" } def setUp(self): pass def test_contains_test(self): full_list = [1, 2, 3] sub_list = [1, 2] list_intersection = list(set(full_list) & set(sub_list)) self.assertListEqual(sub_list, list_intersection) def test_from_to(self): expected = [1, 2, 3, 4, 5] actual = list(sequence_from(1).to(5)) self.assertListEqual(expected, actual) def test_until(self): expected = [1, 2, 3, 4, 5] sequence = \ sequence_from(1) \ .until(lambda index, value: value == 5) actual = list(sequence) self.assertListEqual(expected, actual) def test_as_long_as(self): expected = [1, 2, 3, 4, 5] sequence = \ sequence_from(1) \ .as_long_as(lambda index, value: value < 6) actual = list(sequence) self.assertListEqual(expected, actual) def test_when(self): expected = [1, 3, 5, 7, 9] sequence = \ sequence_from(1) \ .when(lambda index, value: value % 2 == 1) \ .as_long_as(lambda index, value: value <= 10) actual = list(sequence) self.assertListEqual(expected, actual) def test_with_increment(self): expected = [1, 3, 5, 7, 9] sequence = \ sequence_from(1) \ .with_increment(lambda index, value: value + 2) \ .as_long_as(lambda index, value: value <= 10) actual = list(sequence) self.assertListEqual(expected, actual) def test_with_increment_backward(self): expected = [1, -1, -3, -5, -7, -9] sequence = \ sequence_from(1) \ .with_increment(lambda index, value: value - 2) \ .as_long_as(lambda index, value: value >= -10) actual = list(sequence) self.assertListEqual(expected, actual) def test_multiple_when(self): expected = [5, 7, 9] sequence = \ sequence_from(1) \ .when(lambda index, value: value % 2 == 1) \ .when(lambda index, value: value >= 5) \ .as_long_as(lambda index, value: value <= 10) actual = list(sequence) self.assertListEqual(expected, actual) def test_not_when(self): expected = [1, 3, 5, 7, 9] sequence = \ sequence_from(1) \ .not_when(lambda index, value: value % 2 == 0) \ .as_long_as(lambda index, value: value <= 10) actual = list(sequence) self.assertListEqual(expected, actual) def test_multiple_not_when(self): expected = [5, 7, 9] sequence = \ sequence_from(1) \ .not_when(lambda index, value: value % 2 == 0) \ .not_when(lambda index, value: value < 5) \ .as_long_as(lambda index, value: value <= 10) actual = list(sequence) self.assertListEqual(expected, actual) def test_mixed_when_and_not_when(self): expected = [3, 9] sequence = \ sequence_from(1) \ .when(lambda index, value: value % 2 == 1) \ .when(lambda index, value: value > 1) \ .not_when(lambda index, value: value == 7) \ .not_when(lambda index, value: value == 5) \ .as_long_as(lambda index, value: value <= 10) actual = list(sequence) self.assertListEqual(expected, actual) def test_translate_on_one_item(self): expected = [4] sequence = sequence_from(1).to(1) \ .translate_as(lambda index, value: value * 3 + 1) actual = list(sequence) self.assertListEqual(expected, actual) def test_translate_on_multiple_items(self): expected = [4, 7, 10, 13, 16] sequence = sequence_from(1).to(5) \ .translate_as(lambda index, value: value * 3 + 1) actual = list(sequence) self.assertListEqual(expected, actual) def test_translate_on_disparate_types(self): expected = ["ONE", "TWO", "THREE", "FOUR", "FIVE"] sequence = sequence_from(1).to(5) \ .translate_as(lambda index, value: self.number_names()[value].upper()) actual = list(sequence) self.assertListEqual(expected, actual) # if __name__ == "__main__": # unittest.main()