Example #1
0
 def test_tries_len_first(self):
     things = LengthLiar([1, 2], 10)
     things2 = LengthLiar([100, 50, 20, 30, 10], 0)
     self.assertEqual(total_length(things, things2), 10)
     self.assertEqual(
         total_length((n**2 for n in range(1000)), range(1000000000)),
         1000001000,
     )
Example #2
0
 def test_use_length_hints(self):
     things = LengthHinter([1, 2], 10)
     things2 = LengthHinter([100, 50, 20, 30, 10], 0)
     self.assertEqual(total_length(things, things, use_hints=True), 20)
     self.assertEqual(total_length(things2, things2, use_hints=True), 10)
     self.assertEqual(total_length(things, things2, use_hints=True), 15)
     self.assertEqual(total_length(things, things2), 7)
     self.assertEqual(total_length(things, things2, use_hints=False), 7)
     self.assertEqual(
         total_length(reversed(range(1000000000)), use_hints=True),
         1000000000,
     )
Example #3
0
 def test_list(self):
     self.assertEqual(total_length([1, 2, 3]), 3)
Example #4
0
 def test_things_without_length(self):
     self.assertEqual(total_length([1, 2, 3], [4, 5], iter([6, 7])), 7)
Example #5
0
 def test_nothing(self):
     self.assertEqual(total_length(), 0)
Example #6
0
 def test_mixed_iterables(self):
     self.assertEqual(total_length('hi', [0, 9], {1: 2}, {3, 8}, (2,)), 8)
Example #7
0
 def test_sets(self):
     self.assertEqual(total_length({'hi', 'hello'}, {'yellow'}), 3)
Example #8
0
 def test_multiple_lists(self):
     self.assertEqual(total_length([1, 2, 3], [6, 7], [], [1]), 6)