コード例 #1
0
ファイル: test_map.py プロジェクト: saxifrage/caac-map
def test_ai_handles_two_pathways_with_multiple_elements():
    m = genmap.MagnitudeMap(canvas_size=(16, 8), sum_of_magnitudes=84, building_min=1)
    m.add(24, 'a')
    m.add(30, 'b', shape_choice=0)
    m.add(30, 'c')
    assert str(m) == """\
----------------
----------------
--##--########--
--##------------
--##------------
--##--########--
----------------
----------------"""
    assert m.assignments == {}
    solutions = m.assign_ids({'art': ['x', 'y'], 'science': ['z']}, take_first=False)
    assert solutions == [ {'art': [('a', 'x'), ('b', 'y')], 'science': [('c', 'z')]}
                        , {'art': [('a', 'x'), ('c', 'y')], 'science': [('b', 'z')]}
                        , {'art': [('a', 'y'), ('b', 'x')], 'science': [('c', 'z')]}
                        , {'art': [('a', 'y'), ('c', 'x')], 'science': [('b', 'z')]}
                        , {'art': [('b', 'x'), ('c', 'y')], 'science': [('a', 'z')]}
                        , {'art': [('b', 'y'), ('c', 'x')], 'science': [('a', 'z')]}
                        , {'art': [('c', 'x'), ('b', 'y')], 'science': [('a', 'z')]}
                        , {'art': [('c', 'y'), ('b', 'x')], 'science': [('a', 'z')]}
                        , {'art': [('b', 'x'), ('a', 'y')], 'science': [('c', 'z')]}
                        , {'art': [('b', 'y'), ('a', 'x')], 'science': [('c', 'z')]}
                        , {'art': [('c', 'x'), ('a', 'y')], 'science': [('b', 'z')]}
                        , {'art': [('c', 'y'), ('a', 'x')], 'science': [('b', 'z')]}
                         ]
    assert tuple(sorted(m.assignments.items())) in [tuple(sorted(flatten(s))) for s in solutions]
コード例 #2
0
ファイル: test_map.py プロジェクト: gpruim/caac-map
def test_ai_assigns_ids():
    m = genmap.MagnitudeMap(canvas_size=(16, 8),
                            sum_of_magnitudes=10,
                            building_min=1)
    m.add(5, 'a', shape_choice=1)
    m.add(5, 'b')
    assert str(m) == """\
----------------
----------------
--#####--#####--
--#####--#####--
--#####--#####--
--#####--#####--
----------------
----------------"""
    assert m.assignments == {}
    solutions = m.assign_ids({'art': ['deadbeef', 'beeffeed']},
                             take_first=False)
    assert solutions == [{
        'art': [('a', 'deadbeef'), ('b', 'beeffeed')]
    }, {
        'art': [('a', 'beeffeed'), ('b', 'deadbeef')]
    }, {
        'art': [('b', 'deadbeef'), ('a', 'beeffeed')]
    }, {
        'art': [('b', 'beeffeed'), ('a', 'deadbeef')]
    }]
    assert tuple(sorted(m.assignments.items())) in [
        tuple(sorted(flatten(s))) for s in solutions
    ]
コード例 #3
0
 def assign_ids(self, pathways, take_first=True):
     """Given a pathways data structure, assign resources to shapes.
     """
     solutions = pathways_solver.solve( self.shapes
                                      , pathways
                                      , take_first
                                      , relax_crossings_until=1e8
                                       )
     self.assignments = dict(pathways_solver.flatten(random.choice(solutions)))
     assert len(set(self.assignments.values())) == len(self.assignments)
     return solutions
コード例 #4
0
ファイル: test_map.py プロジェクト: saxifrage/caac-map
def test_ai_assigns_ids():
    m = genmap.MagnitudeMap(canvas_size=(16, 8), sum_of_magnitudes=10, building_min=1)
    m.add(5, 'a', shape_choice=1)
    m.add(5, 'b')
    assert str(m) == """\
----------------
----------------
--#####--#####--
--#####--#####--
--#####--#####--
--#####--#####--
----------------
----------------"""
    assert m.assignments == {}
    solutions = m.assign_ids({'art': ['deadbeef', 'beeffeed']}, take_first=False)
    assert solutions == [ {'art': [('a', 'deadbeef'), ('b', 'beeffeed')]}
                        , {'art': [('a', 'beeffeed'), ('b', 'deadbeef')]}
                        , {'art': [('b', 'deadbeef'), ('a', 'beeffeed')]}
                        , {'art': [('b', 'beeffeed'), ('a', 'deadbeef')]}
                         ]
    assert tuple(sorted(m.assignments.items())) in [tuple(sorted(flatten(s))) for s in solutions]
コード例 #5
0
ファイル: test_map.py プロジェクト: gpruim/caac-map
def test_ai_handles_two_simple_pathways():
    m = genmap.MagnitudeMap(canvas_size=(16, 8),
                            sum_of_magnitudes=10,
                            building_min=1)
    m.add(5, 'a', shape_choice=1)
    m.add(5, 'b')
    assert str(m) == """\
----------------
----------------
--#####--#####--
--#####--#####--
--#####--#####--
--#####--#####--
----------------
----------------"""
    assert m.assignments == {}
    solutions = m.assign_ids({
        'art': ['x'],
        'science': ['y']
    },
                             take_first=False)
    assert solutions == [
        {
            'art': [('a', 'x')],
            'science': [('b', 'y')]
        }
        #, {'art': [('a', 'y')], 'science': [('b', 'x')]}
        ,
        {
            'art': [('b', 'x')],
            'science': [('a', 'y')]
        }
        #, {'art': [('b', 'y')], 'science': [('a', 'x')]}
    ]
    assert tuple(sorted(m.assignments.items())) in [
        tuple(sorted(flatten(s))) for s in solutions
    ]