Test fasta2numpy.
authorTom Clegg <tom@tomclegg.ca>
Mon, 20 Jan 2020 15:40:09 +0000 (10:40 -0500)
committerTom Clegg <tom@tomclegg.ca>
Mon, 20 Jan 2020 15:40:09 +0000 (10:40 -0500)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@tomclegg.ca>

gvcf2numpy_test.go [new file with mode: 0644]
testdata/a.1.fasta [new file with mode: 0644]
testdata/a.2.fasta [new file with mode: 0644]
testdata/ref [new file with mode: 0644]
testdata/tags [new file with mode: 0644]

diff --git a/gvcf2numpy_test.go b/gvcf2numpy_test.go
new file mode 100644 (file)
index 0000000..21e08f9
--- /dev/null
@@ -0,0 +1,45 @@
+package main
+
+import (
+       "bytes"
+       "os"
+
+       "github.com/kshedden/gonpy"
+       "gopkg.in/check.v1"
+)
+
+type gvcf2numpySuite struct{}
+
+var _ = check.Suite(&gvcf2numpySuite{})
+
+func (s *gvcf2numpySuite) TestFastaToNumpy(c *check.C) {
+       var stdout bytes.Buffer
+       var cmd gvcf2numpy
+       exited := cmd.RunCommand("gvcf2numpy", []string{"-tag-library", "testdata/tags", "-ref", "testdata/ref", "testdata/a.1.fasta"}, &bytes.Buffer{}, &stdout, os.Stderr)
+       c.Check(exited, check.Equals, 0)
+       npy, err := gonpy.NewReader(&stdout)
+       c.Assert(err, check.IsNil)
+       variants, err := npy.GetUint16()
+       c.Assert(err, check.IsNil)
+       for i := 0; i < 4; i += 2 {
+               if variants[i] == 1 {
+                       c.Check(variants[i+1], check.Equals, uint16(2), check.Commentf("i=%d, v=%v", i, variants))
+               } else {
+                       c.Check(variants[i], check.Equals, uint16(2), check.Commentf("i=%d, v=%v", i, variants))
+               }
+       }
+       for i := 4; i < 9; i += 2 {
+               c.Check(variants[i], check.Equals, uint16(1), check.Commentf("i=%d, v=%v", i, variants))
+       }
+}
+
+func sortUints(variants []uint16) {
+       for i := 0; i < len(variants); i += 2 {
+               if variants[i] > variants[i+1] {
+                       for j := 0; j < len(variants); j++ {
+                               variants[j], variants[j+1] = variants[j+1], variants[j]
+                       }
+                       return
+               }
+       }
+}
diff --git a/testdata/a.1.fasta b/testdata/a.1.fasta
new file mode 100644 (file)
index 0000000..13131a4
--- /dev/null
@@ -0,0 +1,18 @@
+>chr1
+GGAGAACTGTGCTCCGCCTTCAGA
+ACACATGCTAGCGCGTCGGGGTGG
+acgtgcactgtgagcgcatctgca
+actgcgatctgagctatcatacgt
+GACTCTAGCAGAGTGGCCAGCCAC
+atctgcatgactgcatgctagtgc
+CCTCCCGAGCCGAGCCACCCGTCA
+atattacgctatagcgcatatgcc
+GTTATTAATAATAACTTATCATCA
+atatatgcgcgctgatggcctgct
+GCTCTCAAACCTTGTATTTTTCTT
+atccatacttgcnnnnnnnnnnnn
+AAAACTGATCCAAAAAAAATACAA
+nnnnnncatctatccggggggggg
+CCTATGAGTCAATCCTATTTTCAA
+actgtctgactgcgctgatggttg
+ATGTTTAGCTCCCCCTTGTTAGGT
diff --git a/testdata/a.2.fasta b/testdata/a.2.fasta
new file mode 100644 (file)
index 0000000..421606f
--- /dev/null
@@ -0,0 +1,18 @@
+>chr1
+GGAGAACTGTGCTCCGCCTTCAGA
+actgcgatctgagctatcatacgt
+ACACATGCTAGCGCGTCGGGGTGG
+acgtgcactgtgagcgcatctgca
+GACTCTAGCAGAGTGGCCAGCCAC
+atctgcatgactgcatgctagtgc
+CCTCCCGAGCCGAGCCACCCGTCA
+atattacgctatagcgcatatgcc
+GTTATTAATAATAACTTATCATCA
+atatatgcgcgctgatggcctgct
+GCTCTCAAACCTTGTATTTTTCTT
+atccatacttgcnnnnnnnnnnnn
+AAAACTGATCCAAAAAAAATACAA
+nnnnnncatctatccggggggggg
+CCTATGAGTCAATCCTATTTTCAA
+actgtctgactgcgctgatggttg
+ATGTTTAGCTCCCCCTTGTTAGGT
diff --git a/testdata/ref b/testdata/ref
new file mode 100644 (file)
index 0000000..8c5653b
--- /dev/null
@@ -0,0 +1,18 @@
+>chr1
+GGAGAACTGTGCTCCGCCTTCAGA
+acgtgcactgtgagcgcatctgca
+ACACATGCTAGCGCGTCGGGGTGG
+actgcgatctgagctatcatacgt
+GACTCTAGCAGAGTGGCCAGCCAC
+atctgcatgactgcatgctagtgc
+CCTCCCGAGCCGAGCCACCCGTCA
+atattacgctatagcgcatatgcc
+GTTATTAATAATAACTTATCATCA
+atatatgcgcgctgatggcctgct
+GCTCTCAAACCTTGTATTTTTCTT
+atccatacttgcnnnnnnnnnnnn
+AAAACTGATCCAAAAAAAATACAA
+nnnnnncatctatccggggggggg
+CCTATGAGTCAATCCTATTTTCAA
+actgtctgactgcgctgatggttg
+ATGTTTAGCTCCCCCTTGTTAGGT
diff --git a/testdata/tags b/testdata/tags
new file mode 100644 (file)
index 0000000..b710913
--- /dev/null
@@ -0,0 +1,10 @@
+>0000.00
+ggagaactgtgctccgccttcaga
+acacatgctagcgcgtcggggtgg
+gactctagcagagtggccagccac
+cctcccgagccgagccacccgtca
+gttattaataataacttatcatca
+gctctcaaaccttgtatttttctt
+aaaactgatccaaaaaaaatacaa
+cctatgagtcaatcctattttcaa
+atgtttagctcccccttgttaggt