From ed1b2bbe03a96acbec342ff24f8a8d45d5ae3d0c Mon Sep 17 00:00:00 2001 From: RyleyGG Date: Fri, 25 Sep 2020 11:24:47 -0400 Subject: [PATCH] Updated gene input checks Updated the check of incoming data to ensure validity - if the user enters a single digit, say "5", it will automatically be converted to a list like [5,5]. This already worked before with range, but it now works with domain as well. --- src/EasyGA.py | 5 +++-- src/new_initialization_method_testing.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/EasyGA.py b/src/EasyGA.py index 9f367b8..f17d6ba 100644 --- a/src/EasyGA.py +++ b/src/EasyGA.py @@ -38,6 +38,9 @@ class GA: #assuming domain if string (strings can never be range) for x in range(len(self.gene_input)): + if isinstance(gene_input[x], int): + self.gene_input[x] = [self.gene_input[x], self.gene_input[x]] + if self.gene_input_type[x] == None: if (isinstance(self.gene_input[x], list)): for y in range(len(self.gene_input[x])): @@ -50,8 +53,6 @@ class GA: if isinstance(gene_input[x], str): self.gene_input_type[x] = "domain" else: - if isinstance(gene_input[x], int): - self.gene_input[x] = [self.gene_input[x], self.gene_input[x]] self.gene_input_type[x] = "range" diff --git a/src/new_initialization_method_testing.py b/src/new_initialization_method_testing.py index 2cbe4d2..8f4e3b7 100644 --- a/src/new_initialization_method_testing.py +++ b/src/new_initialization_method_testing.py @@ -4,7 +4,7 @@ import random # Create the Genetic algorithm ga = EasyGA.GA() test_range_two = [["left", "right"],[22,35],5,[22,"up"]] -ga.gene_input_type[1] = "domain" +ga.gene_input_type[2] = "domain" ga.initialize(test_range_two) ga.population.print_all()