1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
import unittest
import gfapy
class TestUnitGfaLines(unittest.TestCase):
def test_register_line_merge(self):
g = gfapy.Gfa(version="gfa1")
l = gfapy.line.Header({"xx": 1}, version="gfa1")
l._gfa = g
g._register_line(l)
self.assertEqual(1, g.header.xx)
self.assertRaises(gfapy.AssertionError, g._unregister_line, l)
def test_register_line_name_present(self):
g = gfapy.Gfa(version="gfa1")
l = gfapy.line.segment.GFA1({"name": "sx"}, version="gfa1")
l._gfa = g
g._register_line(l)
self.assertEqual([l], g.segments)
self.assertEqual(l, g.line("sx"))
self.assertEqual(["sx"], g.segment_names)
g._unregister_line(l)
self.assertEqual([], g.segments)
self.assertEqual(None, g.line("sx"))
self.assertEqual([], g.segment_names)
def test_register_line_name_absent(self):
g = gfapy.Gfa(version="gfa2")
l = gfapy.line.edge.GFA2({"eid": gfapy.Placeholder()},
version="gfa2")
l._gfa = g
g._register_line(l)
self.assertEqual([l], g.edges)
self.assertEqual([], g.edge_names)
g._unregister_line(l)
self.assertEqual([], g.edges)
def test_register_line_external(self):
g = gfapy.Gfa(version="gfa2")
l = gfapy.line.Fragment({"external": gfapy.OrientedLine("x","+")},
version="gfa2")
l._gfa = g
g._register_line(l)
self.assertEqual([l], g.fragments)
self.assertEqual([l], g.fragments_for_external("x"))
self.assertEqual(["x"], g.external_names)
g._unregister_line(l)
self.assertEqual([], g.fragments)
self.assertEqual([], g.fragments_for_external("x"))
self.assertEqual([], g.external_names)
def test_register_line_unnamed(self):
g = gfapy.Gfa(version="gfa1")
l = gfapy.line.edge.Link({}, version="gfa1")
l._gfa = g
g._register_line(l)
self.assertEqual([l], g.dovetails)
g._unregister_line(l)
self.assertEqual([], g.dovetails)
|