我如何编写一个 for 循环以便它测试我的所有 5 个测试用例?
How can I write a for loop so that it tests all 5 of my test cases?
我应该根据目标财富计算出定期投资金额。
这是我的用户定义代码:
def contribution_calculator(target_wealth, rate, duration, periodicity):
inv_amt = -npf.pmt(rate/100/periodicity, duration*periodicity, 0, target_wealth)
return inv_amt
这是我的 5 个测试用例,我已将它们放入各自的列表中。
target_wealth = [1000000, 1000000, 3000000, 3000000, 2000000]
rate = [2.5, 2.5, 0.5, 4.0, 3.0]
duration = [25, 12, 25, 25, 10]
periodicity = [12, 1, 12, 12, 2]
例如,测试用例 1 的值为 1000000、2.5、25、12。
如何编写 for 循环以测试所有 5 个给定的测试用例?
您可以使用 zip()
和元组解包,如下所示:
for tw, r, d, p in zip(target_wealth, rate, duration, periodicity):
...
也许重命名列表,以便您可以使用完整的变量名称:
for target_wealth, rate, duration, periodicity in zip(target_wealths, rates, durations, periodicities):
...
PS:如果要测试所有的组合,而不是对应的值,可以用itertools.product
代替zip
:
import itertools
for target_wealth, rate, duration, periodicity in itertools.product(target_wealths, rates, durations, periodicities):
...
我应该根据目标财富计算出定期投资金额。
这是我的用户定义代码:
def contribution_calculator(target_wealth, rate, duration, periodicity):
inv_amt = -npf.pmt(rate/100/periodicity, duration*periodicity, 0, target_wealth)
return inv_amt
这是我的 5 个测试用例,我已将它们放入各自的列表中。
target_wealth = [1000000, 1000000, 3000000, 3000000, 2000000]
rate = [2.5, 2.5, 0.5, 4.0, 3.0]
duration = [25, 12, 25, 25, 10]
periodicity = [12, 1, 12, 12, 2]
例如,测试用例 1 的值为 1000000、2.5、25、12。
如何编写 for 循环以测试所有 5 个给定的测试用例?
您可以使用 zip()
和元组解包,如下所示:
for tw, r, d, p in zip(target_wealth, rate, duration, periodicity):
...
也许重命名列表,以便您可以使用完整的变量名称:
for target_wealth, rate, duration, periodicity in zip(target_wealths, rates, durations, periodicities):
...
PS:如果要测试所有的组合,而不是对应的值,可以用itertools.product
代替zip
:
import itertools
for target_wealth, rate, duration, periodicity in itertools.product(target_wealths, rates, durations, periodicities):
...