def test_intertwine_fpfpfp(self): fpfpfp = solution.intertwined_sequences(( { 'sequence': 'fibonacci', 'length': 1 }, { 'sequence': 'primes', 'length': 1 }, { 'sequence': 'fibonacci', 'length': 1 }, { 'sequence': 'primes', 'length': 1 }, { 'sequence': 'fibonacci', 'length': 1 }, { 'sequence': 'primes', 'length': 1 }, )) self.assertEqual(list(fpfpfp), [1, 2, 1, 3, 2, 5])
def test_multiples_of(self): gen = solution.intertwined_sequences( [{ 'sequence': 'multiples_of', 'length': 10, 'num': 2 }], generator_definitions={'multiples_of': multiples_of}) self.assertEqual(list(gen), [2, 4, 6, 8, 10, 12, 14, 16, 18, 20])
def test_intertwine_fpaapf(self): fpaapf = solution.intertwined_sequences(( {'sequence': 'fibonacci', 'length': 1}, {'sequence': 'primes', 'length': 1}, {'sequence': 'alphabet', 'code': 'lat', 'length': 1}, {'sequence': 'alphabet', 'code': 'bg', 'length': 1}, {'sequence': 'primes', 'length': 1}, {'sequence': 'fibonacci', 'length': 1} )) self.assertEqual(list(fpaapf), [1, 2, 'a', 'b', 3, 1])
def test_intertwine_fpfpfp(self): fpfpfp = solution.intertwined_sequences(( {'sequence': 'fibonacci', 'length': 1}, {'sequence': 'primes', 'length': 1}, {'sequence': 'fibonacci', 'length': 1}, {'sequence': 'primes', 'length': 1}, {'sequence': 'fibonacci', 'length': 1}, {'sequence': 'primes', 'length': 1}, )) self.assertEqual(list(fpfpfp), [1, 2, 1, 3, 2, 5])
def test_multiples_of(self): gen = solution.intertwined_sequences( [ {'sequence': 'multiples_of', 'length': 10, 'num': 2} ], generator_definitions={ 'multiples_of': multiples_of } ) self.assertEqual(list(gen), [2, 4, 6, 8, 10, 12, 14, 16, 18, 20])
def test_intertwine(self): fibonacci_3_prime_3_bg_3 = solution.intertwined_sequences([ {'sequence': 'fibonacci', 'length': 3}, {'sequence': 'primes', 'length': 3}, {'sequence': 'alphabet', 'code': 'bg', 'length': 3} ]) self.assertEqual( list(fibonacci_3_prime_3_bg_3), [1, 1, 2, 2, 3, 5, 'а', 'б', 'в'] )
def test_two_factorial(self): gen = solution.intertwined_sequences( [ {'sequence': 'factorial', 'length': 4}, {'sequence': 'factorial', 'length': 3}, {'sequence': 'factorial', 'length': 5} ], generator_definitions={ 'factorial': factorial } ) self.assertEqual(list(gen), [1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600])
def test_generator_with_two_function(self): generator = solution.intertwined_sequences( [ {'sequence': 'ones', 'length': 10}, {'sequence': 'fibonacci', 'length': 3}, {'sequence': 'natural', 'length': 4} ], generator_definitions={ 'ones': ones, 'natural': naturals } ) self.assertEqual(list(generator), [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 3, 4])
def test_generator_with_parametrs(self): generator = solution.intertwined_sequences( [ {'sequence': 'multiples_of', 'length': 5, 'num': 12}, {'sequence': 'ones', 'length': 3}, {'sequence': 'multiples_of', 'length': 3, 'num': 3} ], generator_definitions={ 'multiples_of': multiples_of, 'ones': ones } ) self.assertEqual(list(generator), [12, 24, 36, 48, 60, 1, 1, 1, 72, 84, 96])
def test_generator_with_parametrs_generator_a(self): generator = solution.intertwined_sequences( [ {'sequence': 'multiples_of', 'length': 1, 'num': 12}, {'sequence': 'a_generator', 'length': 3}, {'sequence': 'multiples_of', 'length': 3, 'num': 3} ], generator_definitions={ 'multiples_of': multiples_of, 'a_generator': a_generator } ) self.assertEqual(list(generator), [12, 'a', 'a', 'a', 24, 36, 48])
def test_factorial(self): gen = solution.intertwined_sequences( [ {'sequence': 'factorial', 'length': 4}, {'sequence': 'a_generator', 'length': 3}, {'sequence': 'multiples_of', 'length': 3, 'num': 3} ], generator_definitions={ 'factorial': factorial, 'multiples_of': multiples_of, 'a_generator': a_generator } ) self.assertEqual(list(gen), [1, 2, 6, 24, 'a', 'a', 'a', 3, 6, 9])
def test_intertwine(self): fibonacci_3_prime_3_bg_3 = solution.intertwined_sequences([{ 'sequence': 'fibonacci', 'length': 3 }, { 'sequence': 'primes', 'length': 3 }, { 'sequence': 'alphabet', 'code': 'bg', 'length': 3 }]) self.assertEqual(list(fibonacci_3_prime_3_bg_3), [1, 1, 2, 2, 3, 5, 'а', 'б', 'в'])
def test_generator_with_two_function(self): generator = solution.intertwined_sequences([{ 'sequence': 'ones', 'length': 10 }, { 'sequence': 'fibonacci', 'length': 3 }, { 'sequence': 'natural', 'length': 4 }], generator_definitions={ 'ones': ones, 'natural': naturals }) self.assertEqual(list(generator), [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 3, 4])
def test_two_factorial(self): gen = solution.intertwined_sequences( [{ 'sequence': 'factorial', 'length': 4 }, { 'sequence': 'factorial', 'length': 3 }, { 'sequence': 'factorial', 'length': 5 }], generator_definitions={'factorial': factorial}) self.assertEqual(list(gen), [ 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600 ])
def test_factorial(self): gen = solution.intertwined_sequences( [{ 'sequence': 'factorial', 'length': 4 }, { 'sequence': 'a_generator', 'length': 3 }, { 'sequence': 'multiples_of', 'length': 3, 'num': 3 }], generator_definitions={ 'factorial': factorial, 'multiples_of': multiples_of, 'a_generator': a_generator }) self.assertEqual(list(gen), [1, 2, 6, 24, 'a', 'a', 'a', 3, 6, 9])
def test_generator_with_parametrs(self): generator = solution.intertwined_sequences([{ 'sequence': 'multiples_of', 'length': 5, 'num': 12 }, { 'sequence': 'ones', 'length': 3 }, { 'sequence': 'multiples_of', 'length': 3, 'num': 3 }], generator_definitions={ 'multiples_of': multiples_of, 'ones': ones }) self.assertEqual(list(generator), [12, 24, 36, 48, 60, 1, 1, 1, 72, 84, 96])
def test_generator_with_parametrs_generator_a(self): generator = solution.intertwined_sequences([{ 'sequence': 'multiples_of', 'length': 1, 'num': 12 }, { 'sequence': 'a_generator', 'length': 3 }, { 'sequence': 'multiples_of', 'length': 3, 'num': 3 }], generator_definitions={ 'multiples_of': multiples_of, 'a_generator': a_generator }) self.assertEqual(list(generator), [12, 'a', 'a', 'a', 24, 36, 48])
def test_intertwine_fpaapf(self): fpaapf = solution.intertwined_sequences(({ 'sequence': 'fibonacci', 'length': 1 }, { 'sequence': 'primes', 'length': 1 }, { 'sequence': 'alphabet', 'code': 'lat', 'length': 1 }, { 'sequence': 'alphabet', 'code': 'bg', 'length': 1 }, { 'sequence': 'primes', 'length': 1 }, { 'sequence': 'fibonacci', 'length': 1 })) self.assertEqual(list(fpaapf), [1, 2, 'a', 'b', 3, 1])
def test_generator_cycle(self): result = [] generator = solution.intertwined_sequences(endless_growing_sequences()) for i in range(0, 6): result.append(next(generator)) self.assertEqual(result, [1, 2, 3, 1, 2, 3])