mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 15:18:49 +00:00
big: test_pow for larger ints.
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
@echo off
|
@echo off
|
||||||
|
clear
|
||||||
:odin run . -vet
|
:odin run . -vet
|
||||||
:odin build . -build-mode:shared -show-timings -o:minimal -use-separate-modules
|
:odin build . -build-mode:shared -show-timings -o:minimal -use-separate-modules
|
||||||
odin build . -build-mode:shared -show-timings -o:size -use-separate-modules
|
odin build . -build-mode:shared -show-timings -o:size -use-separate-modules
|
||||||
|
|||||||
+13
-4
@@ -15,7 +15,7 @@ EXIT_ON_FAIL = False
|
|||||||
#
|
#
|
||||||
# We skip randomized tests altogether if NO_RANDOM_TESTS is set.
|
# We skip randomized tests altogether if NO_RANDOM_TESTS is set.
|
||||||
#
|
#
|
||||||
NO_RANDOM_TESTS = False
|
NO_RANDOM_TESTS = False #True
|
||||||
|
|
||||||
#
|
#
|
||||||
# If TIMED_TESTS == False and FAST_TESTS == True, we cut down the number of iterations.
|
# If TIMED_TESTS == False and FAST_TESTS == True, we cut down the number of iterations.
|
||||||
@@ -225,7 +225,7 @@ def test_pow(base = 0, power = 0, expected_error = Error.Okay):
|
|||||||
if power < 0:
|
if power < 0:
|
||||||
expected_result = 0
|
expected_result = 0
|
||||||
else:
|
else:
|
||||||
expected_result = pow(base, power)
|
expected_result = int(base**power)
|
||||||
return test("test_pow", res, args, expected_error, expected_result)
|
return test("test_pow", res, args, expected_error, expected_result)
|
||||||
|
|
||||||
# TODO(Jeroen): Make sure tests cover edge cases, fast paths, and so on.
|
# TODO(Jeroen): Make sure tests cover edge cases, fast paths, and so on.
|
||||||
@@ -265,14 +265,19 @@ TESTS = {
|
|||||||
[ 42, 1 ], # 1
|
[ 42, 1 ], # 1
|
||||||
[ 42, 0 ], # 42
|
[ 42, 0 ], # 42
|
||||||
[ 42, 2 ], # 42*42
|
[ 42, 2 ], # 42*42
|
||||||
|
|
||||||
|
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
RANDOM_TESTS = [test_add_two, test_sub_two, test_mul_two, test_div_two, test_log]
|
|
||||||
|
|
||||||
total_passes = 0
|
total_passes = 0
|
||||||
total_failures = 0
|
total_failures = 0
|
||||||
|
|
||||||
|
RANDOM_TESTS = [
|
||||||
|
test_add_two, test_sub_two, test_mul_two, test_div_two,
|
||||||
|
test_log, test_pow,
|
||||||
|
]
|
||||||
|
|
||||||
# Untimed warmup.
|
# Untimed warmup.
|
||||||
for test_proc in TESTS:
|
for test_proc in TESTS:
|
||||||
for t in TESTS[test_proc]:
|
for t in TESTS[test_proc]:
|
||||||
@@ -312,6 +317,8 @@ if __name__ == '__main__':
|
|||||||
print()
|
print()
|
||||||
|
|
||||||
for test_proc in RANDOM_TESTS:
|
for test_proc in RANDOM_TESTS:
|
||||||
|
if test_proc == test_pow and BITS > 1_200: continue
|
||||||
|
|
||||||
count_pass = 0
|
count_pass = 0
|
||||||
count_fail = 0
|
count_fail = 0
|
||||||
TIMINGS = {}
|
TIMINGS = {}
|
||||||
@@ -332,6 +339,8 @@ if __name__ == '__main__':
|
|||||||
# We've already tested log's domain errors.
|
# We've already tested log's domain errors.
|
||||||
a = randint(1, 1 << BITS)
|
a = randint(1, 1 << BITS)
|
||||||
b = randint(2, 1 << 60)
|
b = randint(2, 1 << 60)
|
||||||
|
elif test_proc == test_pow:
|
||||||
|
b = randint(1, 10)
|
||||||
else:
|
else:
|
||||||
b = randint(0, 1 << BITS)
|
b = randint(0, 1 << BITS)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user