예제 #1
0
    def test_fibonacci_sequence(self):
        '''Test a known sequence of Fibonacci numbers'''
        # Source: https://en.wikipedia.org/wiki/Fibonacci_number
        known_fibonacci_sequence = {
            1: 0,
            2: 1,
            3: 1,
            4: 2,
            5: 3,
            6: 5,
            7: 8,
            8: 13,
            9: 21,
            10: 34,
            11: 55,
            12: 89,
            13: 144,
            14: 233,
            15: 377,
            16: 610,
            17: 987,
            18: 1597,
            19: 2584,
            20: 4181,
            21: 6765,
        }

        for n_th, expected_result in known_fibonacci_sequence.items():
            calculated = fibonacci.calculate(n=n_th)

            self.assertEqual(first=calculated, second=expected_result)
def handler(event: Dict, context: Dict) -> Dict:
    '''Lambda handler function'''
    global first_run

    cold_start = True if first_run else False

    first_run = False

    n = event.get('n', c.DEFAULT_FIBONACCI_N)

    n_th = fibonacci.calculate(n=n)

    return {
        'cold_start': cold_start,
        'n_th': n_th,
        'remaining_time': context.get_remaining_time_in_millis(),
    }
예제 #3
0
 def test_boundary_logic(self):
     self.assertEqual(fibonacci.calculate(0), 0)
     self.assertEqual(fibonacci.calculate(1), 1)
예제 #4
0
 def test_api_interface(self):
     # self.assertRaises(fibonacci.calculate(), 'TypeError')
     self.assertEqual(fibonacci.calculate(0), 0)
예제 #5
0
 def test_incorrect_input(self):
     self.assertEqual(fibonacci.calculate(-1), "WRONG INPUT")
     self.assertEqual(fibonacci.calculate(4.4), "WRONG INPUT")
     self.assertEqual(fibonacci.calculate("a small banana"), "WRONG INPUT")
     self.assertEqual(fibonacci.calculate(False), "WRONG INPUT")
     self.assertEqual(fibonacci.calculate(None), "WRONG INPUT")
예제 #6
0
 def test_logic(self):
     self.assertEqual(fibonacci.calculate(2), 1)
     self.assertEqual(fibonacci.calculate(3), 2)
     self.assertEqual(fibonacci.calculate(4), 3)
     self.assertEqual(fibonacci.calculate(5), 5)
     self.assertEqual(fibonacci.calculate(10), 55)
def test_one():
    result = fibonacci.calculate(1)
    assert result == 1
def test_zero():
    result = fibonacci.calculate(0)
    assert result == 0
def test_negative_number():
    with pytest.raises(ValueError):
        fibonacci.calculate(-1)
def test_string():
    with pytest.raises(TypeError):
        fibonacci.calculate('AAAA')
def test_valid_number():
    result = fibonacci.calculate(6)
    assert result == 8
def test_three():
    result = fibonacci.calculate(3)
    assert result == 2