示例#1
0
    def test_semelhanca_partidos(self):
        '''Testa a função de semelhança para partidos'''

        partido1 = 'girondinos'
        partido2 = 'jacobinos'
        votacoes = []

        # votações do test
        # v1: p1(3,0,0) p2(0,3,0)
        # v2: p1(0,2,1) p2(2,0,1)
        # v3: p1(3,0,0) p2(0,2,1)

        dep1Sim = Deputado()
        dep1Sim.partido = partido1
        dep1Sim.voto = model.SIM
        dep1Nao = Deputado()
        dep1Nao.partido = partido1
        dep1Nao.voto = model.NAO
        dep1Abs = Deputado()
        dep1Abs.partido = partido1
        dep1Abs.voto = model.ABSTENCAO
        dep2Sim = Deputado()
        dep2Sim.partido = partido2
        dep2Sim.voto = model.SIM
        dep2Nao = Deputado()
        dep2Nao.partido = partido2
        dep2Nao.voto = model.NAO
        dep2Abs = Deputado()
        dep2Abs.partido = partido2
        dep2Abs.voto = model.ABSTENCAO

        # votação 1
        vot = Votacao()
        vot.deputados.append(dep1Sim)
        vot.deputados.append(dep1Sim)
        vot.deputados.append(dep1Sim)
        vot.deputados.append(dep2Nao)
        vot.deputados.append(dep2Nao)
        vot.deputados.append(dep2Nao)
        votacoes.append(vot)

        # votação 2
        vot = Votacao()
        vot.deputados.append(dep1Nao)
        vot.deputados.append(dep1Nao)
        vot.deputados.append(dep1Abs)
        vot.deputados.append(dep2Sim)
        vot.deputados.append(dep2Sim)
        vot.deputados.append(dep2Abs)
        votacoes.append(vot)

        # votação 3
        vot = Votacao()
        vot.deputados.append(dep1Sim)
        vot.deputados.append(dep1Sim)
        vot.deputados.append(dep1Sim)
        vot.deputados.append(dep2Nao)
        vot.deputados.append(dep2Nao)
        vot.deputados.append(dep2Abs)
        votacoes.append(vot)

        proposicao = Proposicao()
        proposicao.votacoes = votacoes

        proposicoes = [proposicao]

        # invocando a função testada
        s = partidos.semelhanca(partido1, partido2, proposicoes)

        # testando se tá certo
        expected = 0.008766487  # calculado na mão
        self.assertAlmostEqual(expected, s, 5)
示例#2
0
    def test_semelhanca_partidos(self):
        """ Tests the function of similarity for political partidos."""

        party1 = 'girondinos'
        party2 = 'jacobinos'
        votings = []

        # Votations of the test:
        # v1: p1(3,0,0) p2(0,3,0)
        # v2: p1(0,2,1) p2(2,0,1)
        # v3: p1(3,0,0) p2(0,2,1)
        dep1Sim = Deputado()
        dep1Sim.partido = party1
        dep1Sim.voto = model.SIM
        dep1Nao = Deputado()
        dep1Nao.partido = party1
        dep1Nao.voto = model.NAO
        dep1Abs = Deputado()
        dep1Abs.partido = party1
        dep1Abs.voto = model.ABSTENCAO
        dep2Sim = Deputado()
        dep2Sim.partido = party2
        dep2Sim.voto = model.SIM
        dep2Nao = Deputado()
        dep2Nao.partido = party2
        dep2Nao.voto = model.NAO
        dep2Abs = Deputado()
        dep2Abs.partido = party2
        dep2Abs.voto = model.ABSTENCAO

        # First grade:
        vot = Votacao()
        vot.deputados.append(dep1Sim)
        vot.deputados.append(dep1Sim)
        vot.deputados.append(dep1Sim)
        vot.deputados.append(dep2Nao)
        vot.deputados.append(dep2Nao)
        vot.deputados.append(dep2Nao)
        votings.append(vot)

        # Second grade:
        vot = Votacao()
        vot.deputados.append(dep1Nao)
        vot.deputados.append(dep1Nao)
        vot.deputados.append(dep1Abs)
        vot.deputados.append(dep2Sim)
        vot.deputados.append(dep2Sim)
        vot.deputados.append(dep2Abs)
        votings.append(vot)

        # Third grade:
        vot = Votacao()
        vot.deputados.append(dep1Sim)
        vot.deputados.append(dep1Sim)
        vot.deputados.append(dep1Sim)
        vot.deputados.append(dep2Nao)
        vot.deputados.append(dep2Nao)
        vot.deputados.append(dep2Abs)
        votings.append(vot)

        proposition = Proposicao()
        proposition.votacoes = votings

        propositions = [proposition]

        # Tested by invoking the function:
        s = partidos.similarity(party1, party2, propositions)

        # If testing is right;
        # Calculating on hand:
        expected = 0.008766487
        self.assertAlmostEqual(expected, s, 5)
示例#3
0
    def test_vetor_votacoes(self):
        '''testa a geração de um vetor de votações'''

        # votações testadas (s,n,a):
        #(9,0,0)
        #(0,8,1)
        #(7,1,1)
        #(3,3,3)

        partido = 'arena'
        votacoes = []

        depSim = Deputado()
        depSim.partido = partido
        depSim.voto = model.SIM
        depNao = Deputado()
        depNao.partido = partido
        depNao.voto = model.NAO
        depAbs = Deputado()
        depAbs.partido = partido
        depAbs.voto = model.ABSTENCAO

        # 1a votação
        vot = Votacao()
        for i in range(0, 9):
            vot.deputados.append(depSim)
        votacoes.append(vot)

        # 2a votação
        vot = Votacao()
        for i in range(0, 8):
            vot.deputados.append(depNao)
        vot.deputados.append(depAbs)
        votacoes.append(vot)

        # 3a votação
        vot = Votacao()
        for i in range(0, 7):
            vot.deputados.append(depSim)
        vot.deputados.append(depNao)
        vot.deputados.append(depAbs)
        votacoes.append(vot)

        # 4a votação
        vot = Votacao()
        for i in range(0, 3):
            vot.deputados.append(depSim)
        for i in range(0, 3):
            vot.deputados.append(depNao)
        for i in range(0, 3):
            vot.deputados.append(depAbs)
        votacoes.append(vot)

        proposicao = Proposicao()
        proposicao.votacoes = votacoes
        proposicoes = [proposicao]

        # invocando a função testada
        vetor = partidos.vetor_votacoes(partido, proposicoes)

        # testando se tá certo
        expected = [1, -0.88889, 0.66667, 0]
        self.assertEqual(len(expected), len(vetor))
        for e, v in zip(expected, vetor):
            self.assertAlmostEqual(e, v, 5)
示例#4
0
    def test_vetor_votacoes(self):
        """Tests the generation of an array of polls."""

        # Tested polls (s,n,a):
        # (9,0,0)
        # (0,8,1)
        # (7,1,1)
        # (3,3,3)
        party = 'arena'
        votings = []

        deputy_vote_yes = Deputado()
        deputy_vote_yes.partido = party
        deputy_vote_yes.voto = model.SIM
        deputy_vote_no = Deputado()
        deputy_vote_no.partido = party
        deputy_vote_no.voto = model.NAO
        depute_vote_abstention = Deputado()
        depute_vote_abstention.partido = party
        depute_vote_abstention.voto = model.ABSTENCAO

        # First grade:
        vote = Votacao()
        for i in range(0, 9):
            vote.deputados.append(deputy_vote_yes)
        votings.append(vote)

        # Second grade::
        vote = Votacao()
        for i in range(0, 8):
            vote.deputados.append(deputy_vote_no)
        vote.deputados.append(depute_vote_abstention)
        votings.append(vote)

        # Third grade:
        vote = Votacao()
        for i in range(0, 7):
            vote.deputados.append(deputy_vote_yes)
        vote.deputados.append(deputy_vote_no)
        vote.deputados.append(depute_vote_abstention)
        votings.append(vote)

        # Fourth voting:
        vote = Votacao()
        for i in range(0, 3):
            vote.deputados.append(deputy_vote_yes)
        for i in range(0, 3):
            vote.deputados.append(deputy_vote_no)
        for i in range(0, 3):
            vote.deputados.append(depute_vote_abstention)
        votings.append(vote)

        proposition = Proposicao()
        proposition.votacoes = votings
        propositions = [proposition]

        # Tested by invoking the function:
        vector = partidos.votings_vector(party, propositions)

        # If testing is right:
        expected = [1, -0.88889, 0.66667, 0]
        self.assertEqual(len(expected), len(vector))
        for e, v in zip(expected, vector):
            self.assertAlmostEqual(e, v, 5)