Files
CSC110/assignments/a2/a2_part2_q1_q2_test.py
Hykilpikonna 9a7345b7b1 [+] A2
2021-10-02 23:35:45 -04:00

122 lines
2.9 KiB
Python

from a2_part2_q1_q2 import mystery_1a_flat, mystery_1b_flat, mystery_2a_no_if, mystery_2b_no_if, mystery_2c_no_if
from hyhelper import *
def mystery_1a_nested(x: int, y: set[int]) -> str:
"""Mystery 1a."""
if len(y) > 1 and x <= 0:
return 'David'
else:
if x > 1 and sum({n**2 for n in y}) >= 10:
return 'Mario'
else:
return 'David'
def mystery_1b_nested(n: int, rows_of_nums: list[list[int]]) -> int:
"""Mystery 1b."""
if len(rows_of_nums) > n > 0:
if n == 1:
return 0
elif n in rows_of_nums[n]:
return sum(rows_of_nums[n]) + n
else:
return sum(rows_of_nums[0])
else:
if len(rows_of_nums) > 20:
return 20
else:
return n
def mystery_2a_if(x: int, y: int, z: set[int]) -> bool:
"""Mystery 2a."""
if x >= y:
if x in z:
return True
elif y not in z:
return False
else:
return False
else:
if x in z:
return False
elif y not in z:
return True
else:
return False
def mystery_2b_if(n: int) -> bool:
"""Mystery 2b."""
if n % 2 == 0:
if n % 3 == 1:
return True
else:
return False
elif n <= 4:
if n < 0:
return True
else:
return False
else:
if n % 3 == 1:
return False
else:
return True
def mystery_2c_if(c1: int, c2: int, c3: int) -> bool:
"""Mystery 2c."""
if c1 == c2:
return False
elif c1 > c2:
if c3 <= c2:
return False
else:
return True
else:
if c2 < c3:
return True
else:
return False
if __name__ == '__main__':
tests = [
(
(mystery_1a_nested, mystery_1a_flat),
((-1, {1, 2}), (2, {10}), (-1, {0}))
),
(
(mystery_1b_nested, mystery_1b_flat),
((1, [[1], [1]]), (2, [[-999], [1], [2, 3]]), (2, [[-999, 9999], [1], [3, 4]]),
(-1, [[1]] * 21), (-1, []))
),
(
(mystery_2a_if, mystery_2a_no_if),
((4, 2, {4}), (4, 2, {3}), (4, 2, {2}), (2, 4, {2}), (2, 4, {3}), (2, 4, {4}))
),
(
(mystery_2b_if, mystery_2b_no_if),
((4,), (2,), (-1,), (3,), (7,), (5,))
),
(
(mystery_2c_if, mystery_2c_no_if),
((1, 1, 0), (2, 1, 1), (2, 1, 2), (1, 2, 3), (1, 2, 1))
)
]
for funcs, paramsList in tests:
color(f'&6Running tests for: {funcs}')
for params in paramsList:
color(f'* Test case {params}')
orig = funcs[0](*params)
flat = funcs[1](*params)
color(f' - Orig: &b{orig}')
color(f' - Flat: &b{flat}')
assert orig == flat
color(f'&a Pass!')