为什么会这样sympy.simplify公司更改随机设置

2024-10-02 00:31:15 发布

您现在位置:Python中文网/ 问答频道 /正文

以下测试失败:

def test_sympy_simplify():
    import sympy
    import random
    random.seed(42)
    state = random.getstate()
    expr = "sin(x)**2 + cos(x)**2"
    sympy.simplify(expr)
    assert state == random.getstate()

为什么会失败?为什么简化需要随机性? 在多次运行此代码段时,状态的变化似乎也不同。你知道吗


Tags: testimportdef代码段randomsinassertcos
1条回答
网友
1楼 · 发布于 2024-10-02 00:31:15

我研究过这个问题:https://nedbatchelder.com/blog/201302/hunting_a_random_bug.html

这是因为导入sympy会导入其测试助手,而测试助手的定义如下:

class SymPyTests(object):
    def __init__(self, ..., seed=random.random()):
        #...
        self._seed = seed

阅读这篇博文,了解我是如何发现它的,以及错误喜剧的其他方面。你知道吗

相关问题 更多 >

    热门问题