Esempio n. 1
0
def test_sizes(deck3x4, deck4x5):
    match_size = 4
    size_4_sets = list(set_solver.solution_generator(
        deck3x4, dimensions=3, feature_size=4, match_size=match_size))

    assert size_4_sets == [
        [[3, 1, 1], [2, 0, 3], [0, 2, 0], [1, 3, 2]],
        [[3, 1, 1], [0, 1, 0], [2, 1, 2], [1, 1, 3]]
    ]
    for entry, cardinalities in zip(
        size_4_sets,
        [[match_size, match_size, match_size], [match_size, 1, match_size]]
    ):
        for dim in range(3):
            assert len(set([card[dim] for card in entry])) \
                == cardinalities[dim]

    match_size = 5
    dimensions = 4
    size_5_sets = list(set_solver.solution_generator(
        deck4x5, dimensions=dimensions, feature_size=5, match_size=match_size))
    assert size_5_sets == [
        [[3, 2, 1, 2], [0, 0, 3, 3], [2, 3, 2, 1], [4, 1, 4, 0], [1, 4, 0, 4]]
    ]

    for entry, cardinalities in zip(size_5_sets, [[match_size] * dimensions]):
        for dim in range(4):
            assert len(set([card[dim] for card in entry])) \
                == cardinalities[dim]

    assert all(map(set_solver.is_set, size_4_sets + size_5_sets))

    assert not list(set_solver.solution_generator(
        deck3x4, dimensions=3, feature_size=4, match_size=5))
Esempio n. 2
0
def test_sizes(deck3x4, deck4x5):
    match_size = 4
    size_4_sets = list(
        set_solver.solution_generator(deck3x4,
                                      dimensions=3,
                                      feature_size=4,
                                      match_size=match_size))

    assert size_4_sets == [[[3, 1, 1], [2, 0, 3], [0, 2, 0], [1, 3, 2]],
                           [[3, 1, 1], [0, 1, 0], [2, 1, 2], [1, 1, 3]]]
    for entry, cardinalities in zip(
            size_4_sets,
        [[match_size, match_size, match_size], [match_size, 1, match_size]]):
        for dim in range(3):
            assert len(set([card[dim] for card in entry])) \
                == cardinalities[dim]

    match_size = 5
    dimensions = 4
    size_5_sets = list(
        set_solver.solution_generator(deck4x5,
                                      dimensions=dimensions,
                                      feature_size=5,
                                      match_size=match_size))
    assert size_5_sets == [[[3, 2, 1, 2], [0, 0, 3, 3], [2, 3, 2, 1],
                            [4, 1, 4, 0], [1, 4, 0, 4]]]

    for entry, cardinalities in zip(size_5_sets, [[match_size] * dimensions]):
        for dim in range(4):
            assert len(set([card[dim] for card in entry])) \
                == cardinalities[dim]

    assert all(map(set_solver.is_set, size_4_sets + size_5_sets))

    assert not list(
        set_solver.solution_generator(
            deck3x4, dimensions=3, feature_size=4, match_size=5))
Esempio n. 3
0
def test_solver_input_validation(deck3x4):
    with pytest.raises(AssertionError):
        set_solver.solution_generator(deck3x4, 4, 5, 6).next()

    with pytest.raises(AssertionError):
        set_solver.solution_generator(deck3x4, 3, 4, 0).next()

    with pytest.raises(AssertionError):
        set_solver.solution_generator(deck3x4, 3, 4, 20).next()
Esempio n. 4
0
def test_solver_input_validation(deck3x4):
    with pytest.raises(AssertionError):
        set_solver.solution_generator(deck3x4, 4, 5, 6).next()

    with pytest.raises(AssertionError):
        set_solver.solution_generator(deck3x4, 3, 4, 0).next()

    with pytest.raises(AssertionError):
        set_solver.solution_generator(deck3x4, 3, 4, 20).next()