如何通过生成随机矩阵来找到特定矩阵

问题描述 投票:0回答:1

我试图通过制作一个测试用例来增加测试的覆盖率,该测试用例将在下面的程序中检查s矩阵的if条件。我不知道我传递给函数np.linalg.svd的矩阵为我的测试用例得到特定的s矩阵。 为了找到那个矩阵,我创建了以下程序,我希望它能运行直到我得到那个矩阵。但由于某种原因,它会在执行少量后停止生成错误超出最大递归深度。我不知道为什么它会像这样。 我是由python program.py运行的 请帮忙

import numpy as np
import random
import pivot as p


def randomGenerator():
    condition = True
    while(condition):
        matrices = np.random.rand(4, 4)
        print(matrices)
        u, s, v = np.linalg.svd(matrices, full_matrices=False)
        Rank = 0
        for i in range(len(s)):
            if s[i] < 0.01:
                s[i] = 0
                print(s)
                condition = False
            else:
                randomGenerator()
# Main #
randomGenerator()
python unit-testing testing code-coverage
1个回答
1
投票

答案是没有递归就这样做。感谢G.安德森。

import numpy as np
import random
import pivot as p

condition = True
while(condition):
    matrices = np.random.rand(4, 4)
    print(matrices)
    u, s, v = np.linalg.svd(matrices, full_matrices=False)
    Rank = 0
    for i in range(len(s)):
        if s[i] < 0.01:
            s[i] = 0
            print(s)
            condition = False
© www.soinside.com 2019 - 2024. All rights reserved.