Exemple #1
0
def test_latin_square_repeat():
    o = LatinSquare(2)
    iv_name, iv_values = o.first_pass(CONDITIONS_2_2)
    yield check_unique, o, iv_values
    for iv_value in iv_values:
        ord = o.get_order({iv_name: iv_value})
        assert ord[:len(ord) // 2] == ord[len(ord) // 2:]
        yield check_latin_square_row, ord[:len(ord) // 2]
Exemple #2
0
def test_latin_square_generator_condition():
    uniform = False
    balanced = False
    o = LatinSquare(balanced=balanced, uniform=uniform)
    iv_name, iv_values = o.first_pass(c for c in CONDITIONS_3)
    yield check_unique, o, iv_values
    for iv_value in iv_values:
        yield check_latin_square_row, o.get_order({iv_name: iv_value})
def test_latin_square_repeat():
    o = LatinSquare(2)
    iv_name, iv_values = o.first_pass(CONDITIONS_2_2)
    yield check_unique, o, iv_values
    for iv_value in iv_values:
        ord = o.get_order({iv_name: iv_value})
        assert ord[:len(ord)//2] == ord[len(ord)//2:]
        yield check_latin_square_row, ord[:len(ord)//2]
def test_latin_square_generator_condition():
    uniform = False
    balanced = False
    o = LatinSquare(balanced=balanced, uniform=uniform)
    iv_name, iv_values = o.first_pass(c for c in CONDITIONS_3)
    yield check_unique, o, iv_values
    for iv_value in iv_values:
        yield check_latin_square_row, o.get_order({iv_name: iv_value})
def test_latin_square():
    for conditions in (CONDITIONS_2_2, CONDITIONS_3):
        for uniform in (True, False):
            for balanced in (True, False):
                if balanced and uniform:
                    with pytest.raises(ValueError):
                        LatinSquare(balanced=balanced, uniform=uniform)
                else:
                    o = LatinSquare(balanced=balanced, uniform=uniform)
                    if balanced and len(conditions) % 2:
                        with pytest.raises(ValueError):
                            o.first_pass(conditions)
                    else:
                        iv_name, iv_values = o.first_pass(conditions)
                        yield check_unique, o, iv_values
                        for iv_value in iv_values:
                            yield check_latin_square_row, o.get_order({iv_name: iv_value})
Exemple #6
0
def test_latin_square():
    for conditions in (CONDITIONS_2_2, CONDITIONS_3):
        for uniform in (True, False):
            for balanced in (True, False):
                if balanced and uniform:
                    with pytest.raises(ValueError):
                        LatinSquare(balanced=balanced, uniform=uniform)
                else:
                    o = LatinSquare(balanced=balanced, uniform=uniform)
                    if balanced and len(conditions) % 2:
                        with pytest.raises(ValueError):
                            o.first_pass(conditions)
                    else:
                        iv_name, iv_values = o.first_pass(conditions)
                        yield check_unique, o, iv_values
                        for iv_value in iv_values:
                            yield check_latin_square_row, o.get_order(
                                {iv_name: iv_value})
Exemple #7
0
def test_reprs():
    for ord in (CompleteCounterbalance(), Shuffle(), LatinSquare(), Ordering(),
                Sorted()):
        yield check_repr, ord