首页 > 解决方案 > 如何通过生成随机矩阵找到特定矩阵

问题描述

我正在尝试通过制作一个测试用例来增加我的测试覆盖率,该测试用例将在以下程序中检查 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()

标签: pythonunit-testingtestingcode-coverage

解决方案


答案是不递归。感谢 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

推荐阅读