File: test_unit_gfa_lines.py

package info (click to toggle)
gfapy 1.0.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 1,932 kB
  • sloc: python: 11,549; sh: 167; makefile: 66
file content (61 lines) | stat: -rw-r--r-- 1,958 bytes parent folder | download | duplicates (4)
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)