File: test_string_mers.rb

package info (click to toggle)
jellyfish 2.2.10-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 3,320 kB
  • sloc: cpp: 35,615; sh: 963; ruby: 578; makefile: 372; python: 165; perl: 36
file content (36 lines) | stat: -rw-r--r-- 925 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
require 'test/unit'
require 'jellyfish'

class TestStringMers < Test::Unit::TestCase
  def setup
    bases = "ACGTacgt"
    @str = (0..1000).map { bases[rand(bases.size())] }.join("")
    Jellyfish::MerDNA::k(rand(100) + 10)
  end

  def test_all_mers
    count = 0
    m2 = Jellyfish::MerDNA.new

    @str.mers.each_with_index { |m, i|
      assert_equal m.to_s, @str[i, Jellyfish::MerDNA::k()].upcase
      m2.set @str[i, Jellyfish::MerDNA::k()]
      assert_equal m2, m
      count += 1
    }
    assert_equal @str.size - Jellyfish::MerDNA::k() + 1, count
  end

  def test_canonical_mers
    count = 0
    m2 = Jellyfish::MerDNA.new
    @str.canonicals { |m|
      m2.set @str[count, Jellyfish::MerDNA::k()]
      cm2 = m2.get_reverse_complement
      assert(m2 == m || m == cm2)
      assert(!(m > m2) && !(m > cm2));
      count += 1
    }      
    assert_equal @str.size - Jellyfish::MerDNA::k() + 1, count
  end
end