From 3cf9165fcc481a1b24c10e3f1d61dca33fd4d1ff Mon Sep 17 00:00:00 2001 From: Alex Leonard Date: Tue, 10 Oct 2017 16:48:43 +0100 Subject: [PATCH] overall fix --- polyominomodel/_polyomino_builder.py | 16 +++++++++++++--- polyominomodel/_version.py | 2 +- setup.py | 9 ++++----- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/polyominomodel/_polyomino_builder.py b/polyominomodel/_polyomino_builder.py index 514064e..a3a3db1 100644 --- a/polyominomodel/_polyomino_builder.py +++ b/polyominomodel/_polyomino_builder.py @@ -23,6 +23,8 @@ def PolyominoBuilder(genotype,build_strategy='random'): if build_strategy=='dfs' or build_strategy=='bfs': possible_grid_order=[] + else: + build_strategy='random' def placeTile(tType,position,orientation): POLYOMINO_GRID[position]=(tType,orientation) @@ -45,7 +47,14 @@ def identifyValidNeighbour(position,centerType,centerOrientation,checkPosition,i if bindingEdge!=0 and cycleList(tile,cycNum)[oppositeBindingEdgeIndex]==InteractionMatrix(bindingEdge): POSSIBLE_GRID[checkPosition].append((i,cycNum)) if build_strategy=='dfs' or build_strategy=='bfs': - possible_grid_order.append(checkPosition) + if checkPosition not in possible_grid_order: + possible_grid_order.append(checkPosition) + else: + if build_strategy=='dfs': + possible_grid_order.remove(checkPosition) + possible_grid_order.append(checkPosition) + else: + pass placement=placeTile(0,(0,0),0) identifyValidNeighbours((0,0)) @@ -53,11 +62,12 @@ def identifyValidNeighbour(position,centerType,centerOrientation,checkPosition,i while len(POSSIBLE_GRID)>0: if build_strategy=='random': newPolyominoPosition,newPolyominoDetails=choice([(position, tileDetail) for position, tileDetails in POSSIBLE_GRID.iteritems() for tileDetail in tileDetails]) - if build_strategy=='dfs': + elif build_strategy=='dfs': newPolyominoPosition,newPolyominoDetails= (possible_grid_order[-1],POSSIBLE_GRID[possible_grid_order.pop()][-1]) - if build_strategy=='bfs': + elif build_strategy=='bfs': newPolyominoPosition,newPolyominoDetails= (possible_grid_order[0],POSSIBLE_GRID[possible_grid_order.pop(0)][0]) + POSSIBLE_GRID.pop(newPolyominoPosition) placement= placeTile(newPolyominoDetails[0],newPolyominoPosition,newPolyominoDetails[1]) identifyValidNeighbours(newPolyominoPosition) diff --git a/polyominomodel/_version.py b/polyominomodel/_version.py index 68eb9b6..2b8877c 100644 --- a/polyominomodel/_version.py +++ b/polyominomodel/_version.py @@ -1 +1 @@ -__version__ = '0.4.5' +__version__ = '0.5.0' diff --git a/setup.py b/setup.py index 9c85978..9b3cd4b 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,7 @@ import sys import os -from setuptools.command.test import test as TestCommand + +from distutils.cmd import Command from distutils.core import setup from distutils.extension import Extension from sys import platform @@ -23,8 +24,7 @@ exec(open(os.path.join(here, 'polyominomodel/_version.py')).read()) - -class PyTest(TestCommand): +class PyTest(Command): user_options = [('pytest-args=', 'a', "Arguments to pass to pytest")] def initialize_options(self): @@ -50,8 +50,7 @@ def run_tests(self): description = 'Various polyomino methods', long_description = open('README.md').read(), license = 'LICENSE.txt', - platforms = ["posix"], - zip_safe = False, + platforms = ["linux","osx"], url = "https://github.com/IcyHawaiian/SLAM", ext_modules = [Extension("polyominomodel.CLAM",sources=['src/graph_methods.cpp','src/graph_analysis.cpp','src/polyomino_wrapper.cpp'],include_dirs = ['src/includes'],extra_compile_args=extra_compile_arguments,extra_link_args=extra_link_arguments,language='c++11')], headers = ['src/includes/graph_analysis.hpp','src/includes/graph_methods.hpp','src/includes/xorshift.hpp']