コード例 #1
0
    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
コード例 #2
0
 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()
コード例 #3
0
def testClient():
    c_repo = Repository()

    c_repo.add(Client(2, "Sandu Ciorba"))
    c_repo.add(Client(12, "Ada Milea"))

    return c_repo
コード例 #4
0
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
コード例 #5
0
 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))
コード例 #6
0
ファイル: test_repo.py プロジェクト: alexresiga/courses
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)
コード例 #7
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()
コード例 #8
0
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
コード例 #9
0
    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
コード例 #10
0
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)
コード例 #11
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)
コード例 #12
0
ファイル: tests.py プロジェクト: rzvpop/lab4
    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])
コード例 #13
0
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()
コード例 #14
0
ファイル: BookRepo.py プロジェクト: rzvpop/lab4
 def add(self, book):
     Repository.add(self, book)
     self.__storeToFile()
コード例 #15
0
 def add(self, rental):
     Repository.add(self, rental)
     self.__storeToFile()
コード例 #16
0
 def add(self, client):
     Repository.add(self, client)
     self.__storeToFile()
コード例 #17
0
 def add(self, obj):
     Repository.add(self, obj)
     self._saveFile()