35 lines
748 B
Python
35 lines
748 B
Python
from typing import TypeVar, Union
|
|
|
|
Number = TypeVar("Number", bound=Union[int, float])
|
|
|
|
|
|
def divide(x: Number, y: Number) -> Number:
|
|
result = x / y
|
|
return result
|
|
|
|
|
|
def testify(func, *, expected, **kwargs):
|
|
template = f"testing for {func.__name__} with {kwargs}..."
|
|
result = func(**kwargs)
|
|
if result == expected:
|
|
print(template + "ok.")
|
|
return True
|
|
|
|
print(template + "failed.")
|
|
return False
|
|
|
|
|
|
def main():
|
|
cases = [
|
|
testify(divide, x=2, y=1, expected=2),
|
|
testify(divide, x=0, y=1, expected=0),
|
|
testify(divide, x=100, y=10, expected=10),
|
|
testify(divide, x=1, y=2, expected=2),
|
|
]
|
|
is_passed = all(cases)
|
|
print(is_passed)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|