github.com/biogo/biogo@v1.0.4/util/debruijn_test.go (about)

     1  // Copyright ©2011-2012 The bíogo Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package util
     6  
     7  import (
     8  	"gopkg.in/check.v1"
     9  )
    10  
    11  // Tests
    12  type tdb struct {
    13  	k, n   byte
    14  	obtain []byte
    15  }
    16  
    17  var T []tdb = []tdb{
    18  	{k: 2, n: 2, obtain: []byte{0, 0, 1, 1}},
    19  	{k: 2, n: 3, obtain: []byte{0, 0, 0, 1, 0, 1, 1, 1}},
    20  	{k: 2, n: 4, obtain: []byte{0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1}},
    21  	{k: 3, n: 4, obtain: []byte{0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 1, 1, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 2, 2, 0, 1, 0, 1, 0, 2, 0, 1, 1, 1, 0, 1, 1, 2, 0, 1, 2, 1, 0, 1, 2, 2, 0, 2, 0, 2, 1, 1, 0, 2, 1, 2, 0, 2, 2, 1, 0, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2}},
    22  	{k: 4, n: 2, obtain: []byte{0, 0, 1, 0, 2, 0, 3, 1, 1, 2, 1, 3, 2, 2, 3, 3}},
    23  	{k: 4, n: 3, obtain: []byte{0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 1, 1, 0, 1, 2, 0, 1, 3, 0, 2, 1, 0, 2, 2, 0, 2, 3, 0, 3, 1, 0, 3, 2, 0, 3, 3, 1, 1, 1, 2, 1, 1, 3, 1, 2, 2, 1, 2, 3, 1, 3, 2, 1, 3, 3, 2, 2, 2, 3, 2, 3, 3, 3}},
    24  }
    25  
    26  func (s *S) TestDeBruijn(c *check.C) {
    27  	for i := 0; i < 256; i++ {
    28  		e := make([]byte, i)
    29  		for j := range e {
    30  			e[j] = byte(j)
    31  		}
    32  		c.Check(DeBruijn(byte(i), 1), check.DeepEquals, e)
    33  	}
    34  	for _, t := range T {
    35  		c.Check(DeBruijn(t.k, t.n), check.DeepEquals, t.obtain)
    36  	}
    37  }