test_defuzz.py 文件源码

python
阅读 32 收藏 0 点赞 0 评论 0

项目:zellij 作者: nedbat 项目源码 文件源码
def test_correct_distance(start, ndigits, dimensions):
    eps = 1e-10
    window = 10 ** -ndigits
    smallest_different = 1.5 * window + eps
    largest_same = 0.5 * window - eps
    step = 10.09 * window
    for i in range(10):
        num = start + i * step
        pt = (num,) * dimensions
        for signs in itertools.product([-1, 0, 1], repeat=dimensions):
            if all(s == 0 for s in signs):
                continue
            # Need a new defuzzer for each attempt, or previous "should be
            # different" points will be close to the "should be same" point.
            dfz = Defuzzer(ndigits=ndigits)
            assert dfz.defuzz(pt) == pt
            st = tuple(num + s * largest_same for s in signs)
            dfzst = dfz.defuzz(st)
            assert dfzst == pt
            dt = tuple(num + s * smallest_different for s in signs)
            dfzdt = dfz.defuzz(dt)
            assert dfzdt != pt
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号