package mcorr
import (
"testing"
)
func TestXBar(t *testing.T) {
doublets := [][]byte{[]byte{'A', 'T'}, []byte{'A', 'C'}, []byte{'C', 'C'}}
nc := NewNuclCov([]byte{'A', 'T', 'G', 'C'})
for _, db := range doublets {
nc.Add(db[0], db[1])
}
expectedX := 2.0
expectedN := 3
gotX, gotN := nc.XBar()
if expectedX != gotX {
t.Errorf("Expect %g, got %g", expectedX, gotX)
}
if expectedN != gotN {
t.Errorf("Expect %d, got %d", expectedN, gotN)
}
}
func TestYBar(t *testing.T) {
doublets := [][]byte{[]byte{'A', 'T'}, []byte{'A', 'C'}, []byte{'C', 'C'}, []byte{'C', 'G'}}
nc := NewNuclCov([]byte{'A', 'T', 'G', 'C'})
for _, db := range doublets {
nc.Add(db[0], db[1])
}
expectedX := 5.0
expectedN := 4 * 3 / 2
gotX, gotN := nc.YBar()
if expectedX != gotX {
t.Errorf("Expect %g, got %g", expectedX, gotX)
}
if expectedN != gotN {
t.Errorf("Expect %d, got %d", expectedN, gotN)
}
}
func TestP11(t *testing.T) {
doublets := [][]byte{[]byte{'A', 'T'}, []byte{'A', 'C'}, []byte{'C', 'C'}}
nc := NewNuclCov([]byte{'A', 'T', 'G', 'C'})
for _, db := range doublets {
nc.Add(db[0], db[1])
}
expectedX := 1.0
expectedN := 3
gotX, gotN := nc.P11()
if expectedX != gotX {
t.Errorf("Expect %g, got %g", expectedX, gotX)
}
if expectedN != gotN {
t.Errorf("Expect %d, got %d", expectedN, gotN)
}
}
func TextP00(t *testing.T) {
doublets := [][]byte{[]byte{'A', 'T'}, []byte{'A', 'C'}, []byte{'C', 'C'}}
nc := NewNuclCov([]byte{'A', 'T', 'G', 'C'})
for _, db := range doublets {
nc.Add(db[0], db[1])
}
expectedX := 0.0
expectedN := 3
gotX, gotN := nc.P11()
if expectedX != gotX {
t.Errorf("Expect %g, got %g", expectedX, gotX)
}
if expectedN != gotN {
t.Errorf("Expect %d, got %d", expectedN, gotN)
}
}
func TextP10(t *testing.T) {
doublets := [][]byte{[]byte{'A', 'T'}, []byte{'A', 'C'}, []byte{'C', 'C'}}
nc := NewNuclCov([]byte{'A', 'T', 'G', 'C'})
for _, db := range doublets {
nc.Add(db[0], db[1])
}
expectedX := 1.0
expectedN := 3
gotX, gotN := nc.P10()
if expectedX != gotX {
t.Errorf("Expect %g, got %g", expectedX, gotX)
}
if expectedN != gotN {
t.Errorf("Expect %d, got %d", expectedN, gotN)
}
}
func TextP01(t *testing.T) {
doublets := [][]byte{[]byte{'A', 'T'}, []byte{'A', 'C'}, []byte{'C', 'C'}}
nc := NewNuclCov([]byte{'A', 'T', 'G', 'C'})
for _, db := range doublets {
nc.Add(db[0], db[1])
}
expectedX := 1.0
expectedN := 3
gotX, gotN := nc.P01()
if expectedX != gotX {
t.Errorf("Expect %g, got %g", expectedX, gotX)
}
if expectedN != gotN {
t.Errorf("Expect %d, got %d", expectedN, gotN)
}
}