예제 #1
0
    def testGenome(self):
        """Test basic functions of a genome
        """
        d = Genome(elementNumber=10, chromosomeNumber=3)
        self.assertEqual(d.getChromosomeNumber(), 3)
        self.assertEqual(d.getElements(), set(range(1, 11)))

        #Test clone
        self.assertEqual(str(d), str(d.clone()))

        #Test inversions
        for i in xrange(100):
            e = d.clone()
            self.assertEquals(d.getOutOfOrderDistance(e), 0)
            self.assertEquals(d.getCircularDcjDistance(e), 0)
            e.permuteByInversion()
            self.assertEquals(e.getChromosomeNumber(), 3)
            self.assertEquals(e.getElements(), d.getElements())
            self.assertTrue(d.getOutOfOrderDistance(e) >= 0)
            self.assertTrue(d.getCircularDcjDistance(e) in [0, 1])

        #Test dcj
        for i in xrange(100):
            e = d.clone()
            self.assertEquals(d.getOutOfOrderDistance(e), 0)
            self.assertEquals(d.getCircularDcjDistance(e), 0)
            e.permuteByDcj()
            self.assertEquals(e.getElements(), d.getElements())
            self.assertTrue(d.getOutOfOrderDistance(e) >= 0)
            self.assertTrue(d.getCircularDcjDistance(e) in [0, 1, 2])

        #Test translocations
        for i in xrange(100):
            e = d.clone()
            self.assertEquals(d.getOutOfOrderDistance(e), 0)
            self.assertEquals(d.getCircularDcjDistance(e), 0)
            e.permuteByTranslocation()
            self.assertEquals(e.getElements(), d.getElements())
            self.assertTrue(d.getOutOfOrderDistance(e) >= 0)
            self.assertTrue(d.getCircularDcjDistance(e) in [0, 1, 2])
 def testGenome(self):
     """Test basic functions of a genome
     """
     d = Genome(elementNumber=10, chromosomeNumber=3)
     self.assertEqual(d.getChromosomeNumber(), 3)
     self.assertEqual(d.getElements(), set(range(1, 11)))
     
     #Test clone
     self.assertEqual(str(d), str(d.clone()))
     
     #Test inversions
     for i in xrange(100):
         e = d.clone()
         self.assertEquals(d.getOutOfOrderDistance(e), 0)
         self.assertEquals(d.getCircularDcjDistance(e), 0)
         e.permuteByInversion()
         self.assertEquals(e.getChromosomeNumber(), 3)
         self.assertEquals(e.getElements(), d.getElements())
         self.assertTrue(d.getOutOfOrderDistance(e) >= 0)
         self.assertTrue(d.getCircularDcjDistance(e) in [ 0, 1 ])
         
     #Test dcj
     for i in xrange(100):
         e = d.clone()
         self.assertEquals(d.getOutOfOrderDistance(e), 0)
         self.assertEquals(d.getCircularDcjDistance(e), 0)
         e.permuteByDcj()
         self.assertEquals(e.getElements(), d.getElements())
         self.assertTrue(d.getOutOfOrderDistance(e) >= 0)
         self.assertTrue(d.getCircularDcjDistance(e) in [ 0, 1, 2 ])
     
     #Test translocations
     for i in xrange(100):
         e = d.clone()
         self.assertEquals(d.getOutOfOrderDistance(e), 0)
         self.assertEquals(d.getCircularDcjDistance(e), 0)
         e.permuteByTranslocation()
         self.assertEquals(e.getElements(), d.getElements())
         self.assertTrue(d.getOutOfOrderDistance(e) >= 0)
         self.assertTrue(d.getCircularDcjDistance(e) in [ 0, 1, 2 ])