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_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(): 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})
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})
def test_reprs(): for ord in (CompleteCounterbalance(), Shuffle(), LatinSquare(), Ordering(), Sorted()): yield check_repr, ord