Esempio n. 1
0
class testAgent(unittest.TestCase):
    def setUp(self):
        self.agent = Agent()
    def testPluck(self):
        self.agent.pluck()

    def testGroupSize(self):
        agent = Agent(n=10)
        self.assertEqual(agent.groupSize(), 10)

    def testRandomVertexPair(self):
        (i,j) = self.agent.getRandomVertexPair()
        self.assertGreater(self.agent.groupSize(), i)
        self.assertGreater(self.agent.groupSize(), j)

    def testAddAndRemoveEdge(self):
        agent = Agent(n=10, p = 0, topology='ErdosRenyi')
        self.assertFalse(agent.graph.are_connected(0,1))
        agent.addEdge(0,1)
        self.assertTrue(agent.graph.are_connected(0,1))
        agent.removeEdge(0,1)
        self.assertFalse(agent.graph.are_connected(0,1))

    def testPluckEdge(self):
        agent = Agent(n=10, p =0)
        agent.pluckEdge(1,2)

    def testPluckTillConnectedEmpty(self):
        agent = Agent(n=10, topology='Empty')
        agent.pluckTillConnected()
        self.assertTrue(agent.isConnected())

    def testPluckTillConnectedStar(self):
        agent = Agent(n=20, topology='Star')
        agent.pluckTillConnected()
        self.assertTrue(agent.isConnected)

    def testAveragePathLengthFull(self):
        agent = Agent(n=10, topology='Full')
        self.assertEqual(1.0, agent.averagePathLength())

    def testAveragePathLengthEmpty(self):
        agent = Agent(n=10, topology='Empty')
        self.assertEqual(agent.averagePathLength(), Inf)

    def testAveragePathLengthStar(self):
        for j in xrange(5,20):
            n = float(j)
            agent = Agent(n=j, topology='Star')
            self.assertEqual(agent.averagePathLength(),(n-1)*2.0/n )

    def testEdgeOccupation(self):
        n = 10
        for m in xrange(0, 10, 1):
            agent = Agent(n = n, m = m, topology='ErdosRenyi')
            p = float(m)/float(n * (n-1)/2)
            self.assertEqual(agent.edgeOccupation(), p)