import numpy as np import math from uctc.framework import basis binary_arguments = [ (1, 2), (-2, 1), (1, 1), (2, -2), (1, 3), (3, 1), (-3, 3), (4, 5), (5, 4), (4, 4), (5, 5) ] singular_arguments = [ 1, 2, 4, -32, 42, 28, 0, 100, -1000, 10000, -100000 ] def iterate_binary_arguments(func, std_func): for argument in binary_arguments: if func(*argument) != std_func(*argument): print(f"\033[1;31mError: {func.__name__}({argument}) = {func(*argument)} != {std_func.__name__}({argument}) = {std_func(*argument)}\033[0m") exit(0) print(f"\033[1;34mPassed: {func.__name__} passed all tests\033[0m") return True def iterate_singular_arguments(func, std_func): for argument in singular_arguments: if func(argument) != std_func(argument): print(f"\033[1;31mError: {func.__name__}({argument}) = {func(argument)} != {std_func.__name__}({argument}) = {std_func(argument)}\033[0m") exit(0) print(f"\033[1;34mPassed: {func.__name__} passed all tests\033[0m") return True # Test task 1 iterate_binary_arguments(basis.mul, lambda x, y: x * y) iterate_singular_arguments(basis.id, lambda x: x) iterate_binary_arguments(basis.add, lambda x, y: x + y) iterate_singular_arguments(basis.neg, lambda x: -x) iterate_binary_arguments(basis.lt, lambda x, y: int(x < y)) iterate_binary_arguments(basis.eq, lambda x, y: int(x == y)) iterate_binary_arguments(basis.max, lambda x, y: max(x, y)) print(f"\033[1;32m[PASSED] Task 1 finished!\033[0m")