我对编程还很陌生,只是在学习如何进行单元测试。我需要测试一个返回随机值的函数。到目前为止,我已经找到建议使用特定种子值的答案,以便“随机”序列是恒定的并且可以进行比较。这是我到目前为止所得到的:
这是我要测试的功能:
import random
def roll():
'''Returns a random number in the range 1 to 6, inclusive.'''
return random.randint(1, 6)
Run Code Online (Sandbox Code Playgroud)
这是我的单元测试:
class Tests(unittest.TestCase):
def test_random_roll(self):
random.seed(900)
seq = random.randint(1, 6)
self.assertEqual(roll(), seq)
Run Code Online (Sandbox Code Playgroud)
如何在函数中为PRNG设置相应的种子值,以便可以在不将其写入函数本身的情况下对其进行测试?或者这是测试随机数生成器的完全错误的方法?
谢谢
我正在创建一个Fraction API类,我的一个构造函数通过将分子和分母参数放在最低项中来标准化一个分数:
public Fraction(int numerator, int denominator){
if (denominator == 0)
throw new ArithmeticException("Cannot divide by zero.");
else {
if (denominator < 0) {
numerator = -numerator;
denominator = -denominator;
}
int gcd; // Greatest Common Divisor
int tmpNum = numerator, tmpDen = denominator;
// Determine greatest common divisor of numerator and denominator
while (tmpNum != 0 && tmpDen != 0) {
int tmp = tmpDen;
tmpDen = tmpNum % tmpDen;
tmpNum = tmp;
}
gcd = Math.abs(tmpNum + tmpDen); …Run Code Online (Sandbox Code Playgroud)