Exemplo n.º 1
0
    def test_ordered_monomer_initialization(self):

        #Correct instantiation
        x = OrderedMonomer()
        x = OrderedMonomer(direction="forward")
        self.assertEqual(x.direction,"forward")
        self.assertEqual(x.position,None)
        self.assertEqual(x.parent,None)
        self.assertEqual(OrderedMonomer(direction="reverse"),x.set_dir("reverse"))

        #Position with no parent
        with self.assertRaisesRegex(ValueError, f"OrderedMonomer"):
            m = OrderedMonomer(position = 1)

        #Bad parent
        with self.assertRaisesRegex(ValueError, f"parent must be an OrderedPolymer"):
            m = OrderedMonomer(parent = 1)
        
        p = OrderedPolymer(parts = [])
        #Parent with no position
        with self.assertRaisesRegex(ValueError, f"OrderedMonomer"):
            m = OrderedMonomer(parent = p)

        #Correct instantiation with parent and position
        m = OrderedMonomer(parent = p, position = 0)
Exemplo n.º 2
0
    def test_initialization(self):
        x = OrderedMonomer()
        y = OrderedMonomer()
        c = MonomerCollection([x, y])

        #test setter
        assert len(c.monomers) == 2
        assert type(c.monomers) == tuple
        #test copying
        assert x not in c.monomers and y not in c.monomers
        assert x.parent is None and y.parent is None
        assert [m.parent == c for m in c.monomers]
Exemplo n.º 3
0
    def test_monomers_setter_and_getter(self):
        x = OrderedMonomer()
        y = OrderedMonomer()
        c = MonomerCollection([x, y])

        xr = OrderedMonomer(direction="reverse")

        c.monomers = [x, xr, y]
        assert len(c.monomers) == 3
        assert c.monomers[1].direction == "reverse"
        assert all([m.parent is None for m in [x, xr, y]])
        assert all([m.parent is c for m in c.monomers])
Exemplo n.º 4
0
    def test_properties(self):
        x = OrderedMonomer()

        #Test None initialization of properties
        self.assertTrue(x.parent is None)
        self.assertTrue(x.direction is None)
        self.assertTrue(x.position is None)

        p = OrderedPolymer(parts = [])
        x = OrderedMonomer(parent = p, position = 0, direction = "r")
        self.assertTrue(x.parent == p)
        self.assertTrue(x.position == 0)
        self.assertTrue(x.direction == "r")
Exemplo n.º 5
0
    def test_ordered_polymer_intialization(self):

        x = OrderedMonomer(direction="forward")
        y = OrderedPolymer([x,[OrderedMonomer(),"reverse"],OrderedMonomer()])

        self.assertFalse(y[0]==x)#Parts should be copied, not inserted!

        #Test faithful copying of a part
        self.assertEqual(y[0].direction, x.direction)
        self.assertEqual(y[0].parent, y)
        self.assertEqual(y[0].position, 0)

        self.assertEqual(y[1].position,1)
        self.assertEqual(y[1].direction,"reverse")
        self.assertEqual(y[1].parent,y)
        self.assertEqual(y[2].position,2)
        self.assertEqual(y[2].direction,None)
        self.assertEqual(y[2].parent,y)
Exemplo n.º 6
0
 def test_ordered_polymer_manipulations(self):
     z = OrderedMonomer(direction="forward")
     x = OrderedMonomer(direction="reverse")
     y = OrderedPolymer([x,[OrderedMonomer(),"reverse"],OrderedMonomer()])
     #replace
     y.replace(1,z)
     truthvalue = OrderedPolymer([OrderedMonomer(direction="reverse"),OrderedMonomer(direction="forward"),OrderedMonomer(direction=None)])
     self.assertEqual(y,truthvalue)
     #insert
     y = OrderedPolymer([x,OrderedMonomer()])
     ins = OrderedMonomer(direction="forward")
     y.insert(1,ins)
     self.assertEqual(y,truthvalue)
     #append
     y = OrderedPolymer([x,OrderedMonomer(direction="forward")])
     y.append(OrderedMonomer())
     self.assertEqual(y,truthvalue)
     #reverse
     y = OrderedPolymer([OrderedMonomer(),OrderedMonomer(direction="reverse"),\
                                 OrderedMonomer(direction="forward")])
     y.reverse()
     self.assertEqual(y,truthvalue)
     #delpart
     y = OrderedPolymer([OrderedMonomer(direction="reverse"),\
                         OrderedMonomer(direction="forward"),\
                         OrderedMonomer(direction="reverse"),\
                         OrderedMonomer()])
     z = y[2]
     self.assertEqual(z.parent,y)
     y.delpart(2)
     self.assertEqual(z.parent,None)
     self.assertEqual(y,truthvalue)