示例#1
0
    def testFractionalClearStrandCommand(self):
        """
        The new API for clearStrand allows fractional values for
        base indices (see docs/virtualhelix.pdf). This tets them.
        """
        vh = VirtualHelix(numBases=8, idnum=0)
        self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,_ _,_ _,_ _,_ _,_ _,_\n0 Staple:   _,_ _,_ _,_ _,_ _,_ _,_ _,_ _,_')

        vh.connectStrand(StrandType.Scaffold, 2, 6)
        vh.connectStrand(StrandType.Staple, 0, 7)
        self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,> <,> <,> <,> <,_ _,_\n0 Staple:   _,> <,> <,> <,> <,> <,> <,> <,_')

        vh.clearStrand(StrandType.Scaffold, 4, 4)
        vh.clearStrand(StrandType.Staple, 3, 5)
        self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,> <,> <,> <,> <,_ _,_\n0 Staple:   _,> <,> <,_ _,_ _,_ _,> <,> <,_')

        vh.undoStack().undo()
        vh.undoStack().undo()
        self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,> <,> <,> <,> <,_ _,_\n0 Staple:   _,> <,> <,> <,> <,> <,> <,> <,_')

        vh.undoStack().undo()
示例#2
0
 def testClearCrossovers(self):
     vh = VirtualHelix(numBases=8, idnum=0)
     vh.connectStrand(StrandType.Staple, 0, 7)
     vh1 = VirtualHelix(numBases=5, idnum=1)
     vh1.connectStrand(StrandType.Staple, 0, 5)
     vh1.installXoverFrom3To5(StrandType.Staple, 3, vh, 2)
     self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,_ _,_ _,_ _,_ _,_ _,_\n0 Staple:   _,> <,> <,1:3 _,> <,> <,> <,> <,_')
     self.assertEqual(repr(vh1), '1 Scaffold: _,_ _,_ _,_ _,_ _,_\n1 Staple:   _,> <,> <,> <,0:2 _,_')
     vh1.clearStrand(StrandType.Staple, 0, 5)
     self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,_ _,_ _,_ _,_ _,_ _,_\n0 Staple:   _,> <,> <,_ _,> <,> <,> <,> <,_')
     self.assertEqual(repr(vh1), '1 Scaffold: _,_ _,_ _,_ _,_ _,_\n1 Staple:   _,_ _,_ _,_ _,_ _,_')
     vh1.undoStack().undo()
     vh1.undoStack().undo()
     self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,_ _,_ _,_ _,_ _,_ _,_\n0 Staple:   _,> <,> <,> <,> <,> <,> <,> <,_')
     self.assertEqual(repr(vh1), '1 Scaffold: _,_ _,_ _,_ _,_ _,_\n1 Staple:   _,> <,> <,> <,> <,_')
     vh.installXoverFrom3To5(StrandType.Staple, 2, vh1, 3)
     self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,_ _,_ _,_ _,_ _,_ _,_\n0 Staple:   _,> <,_ 1:3,> <,> <,> <,> <,> <,_')
     self.assertEqual(repr(vh1), '1 Scaffold: _,_ _,_ _,_ _,_ _,_\n1 Staple:   _,> <,> <,_ 0:2,> <,_')
     vh1.clearStrand(StrandType.Staple, 0, 5)
     self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,_ _,_ _,_ _,_ _,_ _,_\n0 Staple:   _,> <,_ _,> <,> <,> <,> <,> <,_')
     self.assertEqual(repr(vh1), '1 Scaffold: _,_ _,_ _,_ _,_ _,_\n1 Staple:   _,_ _,_ _,_ _,_ _,_')
示例#3
0
print ""
print ""
print "="*10 + 'Now It\'s Undo Time!' + "="*10
print ""
print ""


# Normally a VirtualHelix gets its undo stack from
# its parent part, which gets it from the parent document.
# However, vh and vh1 are orphaned VirtualHelices and so
# they spawn their own separate undo stacks. We must therefore
# be careful to invoke them in the opposite order to which they
# had commands pushed, whereas normally we could just
# document.undo() again and again.
print "vh.undoStack().undo()"
vh.undoStack().undo()
print str(vh)
print str(vh1) + "\n\n"

print "vh1.undoStack().undo()"
vh1.undoStack().undo()
print str(vh)
print str(vh1) + "\n\n"

print "vh.undoStack().undo()"
vh.undoStack().undo()
print str(vh) + "\n\n"

print "vh.undoStack().undo()"
vh.undoStack().undo()
print str(vh) + "\n\n"
示例#4
0
    def testVH(self):
        """
        Perform the VirtualHelix tutorial and make sure that the
        expected changes occur to the sample VirtualHelix
        """
        vh = VirtualHelix(numBases=8, idnum=0)
        self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,_ _,_ _,_ _,_ _,_ _,_\n0 Staple:   _,_ _,_ _,_ _,_ _,_ _,_ _,_ _,_')

        vh.connectStrand(StrandType.Scaffold, 2, 6)
        vh.connectStrand(StrandType.Staple, 0, 7)
        self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,> <,> <,> <,> <,_ _,_\n0 Staple:   _,> <,> <,> <,> <,> <,> <,> <,_')

        vh.clearStrand(StrandType.Scaffold, 3.5, 4.5)
        vh.clearStrand(StrandType.Staple, 2.5, 5.5)
        self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,> <,_ _,> <,> <,_ _,_\n0 Staple:   _,> <,> <,_ _,_ _,_ _,> <,> <,_')

        vh1 = VirtualHelix(numBases=5, idnum=1)
        vh1.connectStrand(StrandType.Staple, 0, 4)
        self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,> <,_ _,> <,> <,_ _,_\n0 Staple:   _,> <,> <,_ _,_ _,_ _,> <,> <,_')
        self.assertEqual(repr(vh1), '1 Scaffold: _,_ _,_ _,_ _,_ _,_\n1 Staple:   _,> <,> <,> <,> <,_')

        vh.installXoverFrom3To5(StrandType.Staple, 2, vh1, 2)
        self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,> <,_ _,> <,> <,_ _,_\n0 Staple:   _,> <,_ 1:2,> <,_ _,_ _,> <,> <,_')
        self.assertEqual(repr(vh1), '1 Scaffold: _,_ _,_ _,_ _,_ _,_\n1 Staple:   _,> <,_ 0:2,> <,> <,_')

        vh.undoStack().undo()
        self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,> <,_ _,> <,> <,_ _,_\n0 Staple:   _,> <,> <,_ _,_ _,_ _,> <,> <,_')
        self.assertEqual(repr(vh1), '1 Scaffold: _,_ _,_ _,_ _,_ _,_\n1 Staple:   _,> <,> <,> <,> <,_')

        vh1.undoStack().undo()
        self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,> <,_ _,> <,> <,_ _,_\n0 Staple:   _,> <,> <,_ _,_ _,_ _,> <,> <,_')
        self.assertEqual(repr(vh1), '1 Scaffold: _,_ _,_ _,_ _,_ _,_\n1 Staple:   _,_ _,_ _,_ _,_ _,_')

        vh.undoStack().undo()
        self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,> <,_ _,> <,> <,_ _,_\n0 Staple:   _,> <,> <,> <,> <,> <,> <,> <,_')

        vh.undoStack().undo()
        self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,> <,> <,> <,> <,_ _,_\n0 Staple:   _,> <,> <,> <,> <,> <,> <,> <,_')

        vh.undoStack().undo()
        self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,> <,> <,> <,> <,_ _,_\n0 Staple:   _,_ _,_ _,_ _,_ _,_ _,_ _,_ _,_')

        vh.undoStack().undo()
        self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,_ _,_ _,_ _,_ _,_ _,_\n0 Staple:   _,_ _,_ _,_ _,_ _,_ _,_ _,_ _,_')

        vh.connectStrand(StrandType.Scaffold, 2, 4)
        vh.connectStrand(StrandType.Scaffold, 0, 7)
        vh.undoStack().undo()
        self.assertEqual(repr(vh), '0 Scaffold: _,_ _,_ _,> <,> <,_ _,_ _,_ _,_\n0 Staple:   _,_ _,_ _,_ _,_ _,_ _,_ _,_ _,_')