Color PCA plot.
[lightning.git] / gvcf2numpy_test.go
1 package main
2
3 import (
4         "bytes"
5         "os"
6
7         "github.com/kshedden/gonpy"
8         "gopkg.in/check.v1"
9 )
10
11 type gvcf2numpySuite struct{}
12
13 var _ = check.Suite(&gvcf2numpySuite{})
14
15 func (s *gvcf2numpySuite) TestFastaToNumpy(c *check.C) {
16         var stdout bytes.Buffer
17         var cmd gvcf2numpy
18         exited := cmd.RunCommand("gvcf2numpy", []string{"-tag-library", "testdata/tags", "-ref", "testdata/ref", "testdata/a.1.fasta"}, &bytes.Buffer{}, &stdout, os.Stderr)
19         c.Check(exited, check.Equals, 0)
20         npy, err := gonpy.NewReader(&stdout)
21         c.Assert(err, check.IsNil)
22         variants, err := npy.GetUint16()
23         c.Assert(err, check.IsNil)
24         for i := 0; i < 4; i += 2 {
25                 if variants[i] == 1 {
26                         c.Check(variants[i+1], check.Equals, uint16(2), check.Commentf("i=%d, v=%v", i, variants))
27                 } else {
28                         c.Check(variants[i], check.Equals, uint16(2), check.Commentf("i=%d, v=%v", i, variants))
29                 }
30         }
31         for i := 4; i < 9; i += 2 {
32                 c.Check(variants[i], check.Equals, uint16(1), check.Commentf("i=%d, v=%v", i, variants))
33         }
34 }
35
36 func sortUints(variants []uint16) {
37         for i := 0; i < len(variants); i += 2 {
38                 if variants[i] > variants[i+1] {
39                         for j := 0; j < len(variants); j++ {
40                                 variants[j], variants[j+1] = variants[j+1], variants[j]
41                         }
42                         return
43                 }
44         }
45 }