You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

test_task1.py 1.6 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import numpy as np
  2. import math
  3. from uctc.framework import basis
  4. binary_arguments = [
  5. (1, 2),
  6. (-2, 1),
  7. (1, 1),
  8. (2, -2),
  9. (1, 3),
  10. (3, 1),
  11. (-3, 3),
  12. (4, 5),
  13. (5, 4),
  14. (4, 4),
  15. (5, 5)
  16. ]
  17. singular_arguments = [
  18. 1, 2, 4, -32, 42, 28, 0, 100, -1000, 10000, -100000
  19. ]
  20. def iterate_binary_arguments(func, std_func):
  21. for argument in binary_arguments:
  22. if func(*argument) != std_func(*argument):
  23. print(f"\033[1;31mError: {func.__name__}({argument}) = {func(*argument)} != {std_func.__name__}({argument}) = {std_func(*argument)}\033[0m")
  24. exit(0)
  25. print(f"\033[1;34mPassed: {func.__name__} passed all tests\033[0m")
  26. return True
  27. def iterate_singular_arguments(func, std_func):
  28. for argument in singular_arguments:
  29. if func(argument) != std_func(argument):
  30. print(f"\033[1;31mError: {func.__name__}({argument}) = {func(argument)} != {std_func.__name__}({argument}) = {std_func(argument)}\033[0m")
  31. exit(0)
  32. print(f"\033[1;34mPassed: {func.__name__} passed all tests\033[0m")
  33. return True
  34. # Test task 1
  35. iterate_binary_arguments(basis.mul, lambda x, y: x * y)
  36. iterate_singular_arguments(basis.id, lambda x: x)
  37. iterate_binary_arguments(basis.add, lambda x, y: x + y)
  38. iterate_singular_arguments(basis.neg, lambda x: -x)
  39. iterate_binary_arguments(basis.lt, lambda x, y: int(x < y))
  40. iterate_binary_arguments(basis.eq, lambda x, y: int(x == y))
  41. iterate_binary_arguments(basis.max, lambda x, y: max(x, y))
  42. print(f"\033[1;32m[PASSED] Task 1 finished!\033[0m")

计算机大作业