Spaces:
Sleeping
Sleeping
File size: 1,097 Bytes
02518d0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | from app.algorithms import (
fibonacci_fast_doubling,
fibonacci_iterative,
fibonacci_matrix,
generate_positive_range_optimized,
generate_range,
)
def test_known_positive_values() -> None:
expected = {
0: 0,
1: 1,
2: 1,
3: 2,
4: 3,
5: 5,
6: 8,
7: 13,
10: 55,
}
for n, value in expected.items():
assert fibonacci_iterative(n) == value
assert fibonacci_fast_doubling(n) == value
assert fibonacci_matrix(n) == value
def test_negative_values() -> None:
expected = {
-1: 1,
-2: -1,
-3: 2,
-4: -3,
-5: 5,
-6: -8,
}
for n, value in expected.items():
assert fibonacci_iterative(n) == value
assert fibonacci_fast_doubling(n) == value
assert fibonacci_matrix(n) == value
def test_range_generation() -> None:
assert generate_range(0, 7, "fast_doubling") == [0, 1, 1, 2, 3, 5, 8]
def test_optimized_range() -> None:
assert generate_positive_range_optimized(2, 7) == [1, 2, 3, 5, 8]
|