使用 Python Unittest 测试数组中的结果
Using Python Unittest to test results in an array
我实现了一个计算年度抵押贷款还款的函数,我想测试它是否生成正确的结果。
我已将输入抵押值放入一个数组中,例如:
input_array([ 50000., 100000., 150000., ...])
和另一个数组中的相应结果:
output_array([ 3200.60, 6401.20, 9601.79, ...])
我想将输入数组中的每个元素作为我函数的输入并测试结果是否与output_array相同。
是否可以自动完成,而不是在 assertEqual
函数中手动输入抵押值和预期输出?
非常感谢。
assertListEqual(map(f, input_array), output_array)
你有两个选择。首先,只比较整个数组:
expected_list = [1, 2, 3, 4]
output_list = calc_mortgage([10, 20, 30, 42])
self.assertEqual(expected_list, output_list)
第二种,可以比较每个元素:
expected_list = [1, 2, 3, 4]
output_list = calc_mortgage([10, 20, 30, 42])
for pair in zip(expected_list, output_list):
self.assertEqual(pair[0], pair[1])
对于 numpy 数组,类似于:
self.assertTrue(
numpy.allclose(calc_mortgage([10, 20, 30, 42], [1, 2, 3, 4]),
msg="calc_mortgage error"
)
我实现了一个计算年度抵押贷款还款的函数,我想测试它是否生成正确的结果。
我已将输入抵押值放入一个数组中,例如:
input_array([ 50000., 100000., 150000., ...])
和另一个数组中的相应结果:
output_array([ 3200.60, 6401.20, 9601.79, ...])
我想将输入数组中的每个元素作为我函数的输入并测试结果是否与output_array相同。
是否可以自动完成,而不是在 assertEqual
函数中手动输入抵押值和预期输出?
非常感谢。
assertListEqual(map(f, input_array), output_array)
你有两个选择。首先,只比较整个数组:
expected_list = [1, 2, 3, 4]
output_list = calc_mortgage([10, 20, 30, 42])
self.assertEqual(expected_list, output_list)
第二种,可以比较每个元素:
expected_list = [1, 2, 3, 4]
output_list = calc_mortgage([10, 20, 30, 42])
for pair in zip(expected_list, output_list):
self.assertEqual(pair[0], pair[1])
对于 numpy 数组,类似于:
self.assertTrue(
numpy.allclose(calc_mortgage([10, 20, 30, 42], [1, 2, 3, 4]),
msg="calc_mortgage error"
)