def solve(self, noChrom, noIter, cross, mutation): for i in range(0, noChrom): self.repo.add(Chromosome(self.problParam)) self.repo.sort() p = Repository() #print(self.repo.get(0)) for i in range(0, noIter): repo1 = Repository() #repo1.add(self.repo.get(0)) for j in range(0, noChrom): if random.uniform(0, 1) <= cross: parents = self.selectParents(noChrom) c = parents[0].crossover(parents[1]) if random.uniform(0, 1) <= mutation: c.mutation() else: c = self.repo.get(j).clone() if random.uniform(0, 1) <= mutation: c.mutation() repo1.add(c) repo1.sort() self.repo = repo1 p.add(self.repo.get(0)) return p
def __loadFromFile(self): try: f = open(self.__f_name, "r") line = f.readline().strip() while line != "": attrs = line.split(',') attrs[3].strip(' ') attrs[3] = attrs[3].split('-') attrs[4].strip(' ') attrs[4] = attrs[4].split('-') attrs[5].strip(' ') if not attrs[5] == " False": attrs[5] = attrs[5].split('-') b = Rental(int(attrs[0]), int(attrs[1]), int(attrs[2]), date(int(attrs[3][0]), int(attrs[3][1]), int(attrs[3][2])), date(int(attrs[4][0]), int(attrs[4][1]), int(attrs[4][2])), date(int(attrs[5][0]), int(attrs[5][1]), int(attrs[5][2]))) else: b = Rental(int(attrs[0]), int(attrs[1]), int(attrs[2]), date(int(attrs[3][0]), int(attrs[3][1]), int(attrs[3][2])), date(int(attrs[4][0]), int(attrs[4][1]), int(attrs[4][2])), False) Repository.add(self, b) line = f.readline().strip() except IOError: raise RepositoryException("Can't load data from file " + self.__f_name + "!") f.close()
def testClient(): c_repo = Repository() c_repo.add(Client(2, "Sandu Ciorba")) c_repo.add(Client(12, "Ada Milea")) return c_repo
def testBook(): b_repo = Repository() b_repo.add(Book(1, "Charlie and the chocolate factory", "nice storry", "Roald Dalh")) b_repo.add(Book(3, "Ciresarii", "tat felu de aventuri", "Constantin Chirita")) return b_repo
def _loadFile(self): try: f = open(self._fileName, "rb") res = pickle.load(f) for c in res: Repository.add(self, c) except EOFError: return [] except IOError as e: raise RepositoryError(str(e))
class TestRepo(TestDomain): def setUp(self): TestDomain.setUp(self) self.repo = Repository() def testrepo(self): TestDomain.testdomain(self) self.repo.add(self.weapon) self.assertEqual(self.repo.size(), 1) self.repo.remove(self.weapon) self.assertEqual(self.repo.size(), 0)
def __loadFromFile(self): try: f = open(self.__f_name, "r") line = f.readline().strip() while line != "": attrs = line.split(',') c = Client(int(attrs[0]), attrs[1]) Repository.add(self, c) line = f.readline().strip() except IOError: raise RepositoryException("Can't load data from file " + self.__f_name + "!") f.close()
class Service: def __init__(self, param): self.problParam = param self.repo = Repository() def selectParents(self, noNodes): r = [0, 0] h = [-1, -1] s = -1 c = -1 for i in range(2): o = random.sample(range(noNodes), 1)[0] r[i] = self.repo.get(o) c = o for j in range(20): idx = random.sample(range(noNodes), 1)[0] if self.repo.get(idx).getFitness() < r[i].getFitness() and ( s == -1 or s != idx): r[i] = self.repo.get(idx) c = idx h[i] = idx s = c return [r[0].clone(), r[1].clone()] def solve(self, noChrom, noIter, cross, mutation): for i in range(0, noChrom): self.repo.add(Chromosome(self.problParam)) self.repo.sort() p = Repository() #print(self.repo.get(0)) for i in range(0, noIter): repo1 = Repository() #repo1.add(self.repo.get(0)) for j in range(0, noChrom): if random.uniform(0, 1) <= cross: parents = self.selectParents(noChrom) c = parents[0].crossover(parents[1]) if random.uniform(0, 1) <= mutation: c.mutation() else: c = self.repo.get(j).clone() if random.uniform(0, 1) <= mutation: c.mutation() repo1.add(c) repo1.sort() self.repo = repo1 p.add(self.repo.get(0)) return p
def testRepo(self): repo = Repository() assert repo.add(Student('1', 'Mihai Ionut', 10, 10)) == False assert repo.add(Student('2', 'Mihai Ionut', 10, 10)) == False assert repo.add(Student('3', 'Mihai Ionut', 10, 10)) == False repo.addBonus(Student('1', 'Mihai', 13, 9), 1) repo.addBonus(Student('2', 'Ionut', 5, 8), 1) for i in repo.getAll(): if i.getID() == 1: assert i.getGrade() == 10 if i.getID() == 2: assert i.getGrade() == 9 assert len(repo.getAll()) == 10
class ClientTestCase(unittest.TestCase): def setUp(self): self.v = ClientValidator() self.c = Client("1", "aaa") self.client = Repository() def testClient(self): self.assertTrue(self.v.validate, self.c) self.c.name = "bbb" self.assertTrue(self.v.validate, self.c.name == "bbb") self.c.name = "" self.assertRaises(ValidatorException, self.v.validate, self.c) z = Client("1", "Anna") self.client.add(z) self.client.remove(z) self.assertEqual(len(self.client.getAll()), 0)
class MovieControllerTest(unittest.TestCase): def setUp(self): self.v = MovieValidator() self.movie = Repository() self.c = Movie("1", "aaa", "bbb", "ccc") def testMovie(self): self.movie.add([1, "aaa", "bbb", "ccc"]) self.assertTrue(self.v.validate, self.movie) self.assertEqual(len(self.movie.getAll()), 1) self.movie.add([]) self.assertTrue(self.v.validate, self.c) self.c.genre = "aaa" self.assertTrue(self.v.validate, self.c.genre == "aaa") self.c.genre = "" self.assertRaises(ValidatorException, self.v.validate, self.c) self.c.description = "bbb" self.assertTrue(self.v.validate, self.c.description == "bbb") self.c.description = "" self.assertRaises(ValidatorException, self.v.validate, self.c) self.assertEqual(len(self.movie), 2)
def test_search(self): book_repo = Repository() client_repo = Repository() rental_repo = Repository() book_repo.add(Book(1, "Iona", "teatru postbelic", "Marin Sorescu")) book_repo.add(Book(2, "Amintiri din copilarie", "proza", "Ion Creanga")) book_repo.add(Book(3, "1984", "roman", "George Orwell")) st_ctrl = StatisticsController(book_repo, client_repo, rental_repo) l = [] st_ctrl.search(book_repo, "author", "re", l) self.assertTrue(len(l) == 2) rental_repo.add( Rental(2, 2, 10, date.today(), date.today() + timedelta(days=10), False)) most_rented = st_ctrl.mostRentedBooks() self.assertTrue( most_rented[0] == [Book(2, "Amintiri din copilarie", "proza", "Ion Creanga"), 1])
from repository.Repository import Repository from service.WeaponController import WeaponController from UI.ui import UI from domain.Weapon import Weapon repo = Repository() repo.add(Weapon(1, 'shield', 'bronze', 2500000)) repo.add(Weapon(2, 'sword', 'bronze', 750000000)) repo.add(Weapon(3, 'sword', 'silver', 700000000)) repo.add(Weapon(4, 'sword', 'gold', 50000000000)) repo.add(Weapon(5, 'shield', 'bronze', 6000)) controller = WeaponController(repo) ui = UI(repo, controller) ui.start()
def add(self, book): Repository.add(self, book) self.__storeToFile()
def add(self, rental): Repository.add(self, rental) self.__storeToFile()
def add(self, client): Repository.add(self, client) self.__storeToFile()
def add(self, obj): Repository.add(self, obj) self._saveFile()