Export HGVS.
[lightning.git] / hgvs / diff_test.go
1 package hgvs
2
3 import (
4         "testing"
5
6         "gopkg.in/check.v1"
7 )
8
9 func Test(t *testing.T) { check.TestingT(t) }
10
11 type diffSuite struct{}
12
13 var _ = check.Suite(&diffSuite{})
14
15 func (s *diffSuite) TestDiff(c *check.C) {
16         for _, trial := range []struct {
17                 a      string
18                 b      string
19                 expect []string
20         }{
21                 {
22                         a:      "aaaaaaaaaa",
23                         b:      "aaaaCaaaaa",
24                         expect: []string{"5a>C"},
25                 },
26                 {
27                         a:      "aaaacGcaaa",
28                         b:      "aaaaccaaa",
29                         expect: []string{"6del"},
30                 },
31                 {
32                         a:      "aaaacGGcaaa",
33                         b:      "aaaaccaaa",
34                         expect: []string{"6_7del"},
35                 },
36                 {
37                         a:      "aaaac",
38                         b:      "aaaa",
39                         expect: []string{"5del"},
40                 },
41                 {
42                         a:      "aaaa",
43                         b:      "aaCaa",
44                         expect: []string{"2_3insC"},
45                 },
46                 {
47                         a:      "aaGGGtt",
48                         b:      "aaCCCtt",
49                         expect: []string{"3_5delinsCCC"},
50                 },
51                 {
52                         a:      "aa",
53                         b:      "aaCCC",
54                         expect: []string{"2_3insCCC"},
55                 },
56                 {
57                         a:      "aaGGttAAtttt",
58                         b:      "aaCCttttttC",
59                         expect: []string{"3_4delinsCC", "7_8del", "12_13insC"},
60                 },
61         } {
62                 c.Log(trial)
63                 var vars []string
64                 diffs, _ := Diff(trial.a, trial.b, 0)
65                 for _, v := range diffs {
66                         vars = append(vars, v.String())
67                 }
68                 c.Check(vars, check.DeepEquals, trial.expect)
69         }
70 }