File: test_api_gfa_basics.py

package info (click to toggle)
gfapy 1.2.3%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 2,036 kB
  • sloc: python: 11,777; sh: 167; makefile: 68
file content (77 lines) | stat: -rw-r--r-- 2,535 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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import gfapy
import unittest

class TestAPIGfaBasics(unittest.TestCase):

  def test_initialize(self):
    gfapy.Gfa() # nothing raised
    gfa = gfapy.Gfa()
    self.assertEqual(gfapy.Gfa, gfa.__class__)

  def test_version_empty(self):
    gfa = gfapy.Gfa()
    self.assertIsNone(gfa.version)
    gfa = gfapy.Gfa(version="gfa1")
    self.assertEqual("gfa1", gfa.version)
    gfa = gfapy.Gfa(version="gfa2")
    self.assertEqual("gfa2", gfa.version)
    with self.assertRaises(gfapy.VersionError): gfapy.Gfa(version="0.0")

  def test_validate(self):
    gfa = gfapy.Gfa(version="gfa1")
    gfa.append("S\t1\t*")
    gfa.validate() # nothing raised
    gfa.append("L\t1\t+\t2\t-\t*")
    with self.assertRaises(gfapy.NotFoundError): gfa.validate()
    gfa.append("S\t2\t*")
    gfa.validate() # nothing raised
    gfa.append("P\t3\t1+,4-\t*")
    with self.assertRaises(gfapy.NotFoundError): gfa.validate()
    gfa.append("S\t4\t*")
    with self.assertRaises(gfapy.NotFoundError): gfa.validate()
    gfa.append("L\t4\t+\t1\t-\t*")
    gfa.validate() # nothing raised

  def test_to_s(self):
    lines = ["H\tVN:Z:1.0","S\t1\t*","S\t2\t*","S\t3\t*",
     "L\t1\t+\t2\t-\t*","C\t1\t+\t3\t-\t12\t*","P\t4\t1+,2-\t*"]
    gfa = gfapy.Gfa()
    for l in lines: gfa.append(l)
    self.assertEqual(set(lines), set(str(gfa).split("\n")))

  ## def test_from_file(self):
  ##   filename = "tests/testdata/example1.gfa"
  ##   gfa = gfapy.Gfa.from_file(filename)
  ##   assert(gfa)
  ##   with open(filename) as f:
  ##     txt = f.read()
  ##   self.assertEqual(txt, str(gfa))

  ## def test_to_file(self):
  ##   filename = "tests/testdata/example1.gfa"
  ##   gfa = gfapy.Gfa.from_file(filename)
  ##   tmp = Tempfile("example1")
  ##   gfa.to_file(tmp.path)
  ##   tmp.rewind
  ##   self.assertEqual(IO.read(filename), IO.read(tmp))

  def test_from_string(self):
    lines = ["H\tVN:Z:1.0","S\t1\t*","S\t2\t*","S\t3\t*",
     "L\t1\t+\t2\t-\t*","C\t1\t+\t3\t-\t12\t*","P\t4\t1+,2-\t*"]
    gfa1 = gfapy.Gfa()
    for l in lines: gfa1.append(l)
    gfa2 = gfapy.Gfa("\n".join(lines))
    assert(gfa2)
    self.assertEqual(gfapy.Gfa, gfa2.__class__)
    self.assertEqual(str(gfa1), str(gfa2))

  def test_from_list(self):
    lines = ["H\tVN:Z:1.0","S\t1\t*","S\t2\t*","S\t3\t*",
     "L\t1\t+\t2\t-\t*","C\t1\t+\t3\t-\t12\t*","P\t4\t1+,2-\t*"]
    gfa1 = gfapy.Gfa()
    for l in lines: gfa1.append(l)
    gfa2 = gfapy.Gfa(lines)
    assert(gfa2)
    self.assertEqual(gfapy.Gfa, gfa2.__class__)
    self.assertEqual(str(gfa1), str(gfa2))