Пример #1
0
def test_defuzz_double():
    """ Test a double-defuzz """
    dataset = [
        Point(0, 0, d),
        Point(1, 1, d + 1),
        Point(0, 0, d + 2),
        Point(-1, -1, d + 3),
        Point(0, 0, d + 6),
        # Begin chopped displacement
        Point(10, 10, d + 7),
        Point(10, 10, d + 8),
        Point(10, 10, d + 9),
        Point(10, 10, d + 10),
        # End.
        Point(0, 0, d + 29),
        Point(0, 0, d + 30),
        Point(0, 0, d + 31)
    ]
    foo = dataset[:]
    assert defuzz_raw(dataset, delt) == foo
    foo2 = [
        Point(0, 0, d),
        Point(0, 0, d + 2),
        Point(0, 0, d + 6),
        Point(10, 10, d + 7),
        Point(10, 10, d + 8),
        Point(10, 10, d + 9),
        Point(10, 10, d + 10),
        Point(0, 0, d + 29),
        Point(0, 0, d + 30),
        Point(0, 0, d + 31)
    ]
    # such a hack
    assert defuzz_feet(dataset, delt) == foo2
    assert defuzz_meters(dataset, delt) == foo2
Пример #2
0
def test_defuzz_single():
    """ Test a single defuzz """
    dataset = [
        Point(0, 0, d),
        Point(1, 1, d + 1),
        Point(0, 0, d + 2),
        Point(-1, -1, d + 3),
        Point(0, 0, d + 6),
        Point(10, 10, d + 8),  # Bad (5)
        Point(0, 0, d + 10),
        Point(0, 0, d + 30),
        Point(0, 0, d + 31)
    ]
    foo = dataset[:]
    del foo[5]
    assert defuzz_raw(dataset, delt) == foo