--- /dev/null
+#!/usr/bin/env ruby
+
+require 'Maasha/lib/seq'
+require 'test/unit'
+
+class TestSeq < Test::Unit::TestCase
+ def test_Seq_new
+ my_seq1 = Seq.new
+ assert_equal( nil, my_seq1.seq )
+ assert_equal( nil, my_seq1.seq_type )
+
+ my_seq2 = Seq.new( "ATCG" )
+ assert_equal( "ATCG", my_seq2.seq )
+ assert_equal( nil, my_seq2.seq_type )
+
+ my_seq3 = Seq.new( "ATCG", "DNA" )
+ assert_equal( "ATCG", my_seq3.seq )
+ assert_equal( "DNA", my_seq3.seq_type )
+ end
+
+ def test_seq_type_guess
+ my_seq = Seq.new
+
+ my_seq.seq = "ATCG"
+ assert_equal( "DNA", my_seq.seq_type_guess )
+ assert_equal( nil, my_seq.seq_type )
+
+ my_seq.seq = "AUCG"
+ assert_equal( "RNA", my_seq.seq_type_guess )
+ assert_equal( nil, my_seq.seq_type )
+
+ my_seq.seq = "SEQ"
+ assert_equal( "AA", my_seq.seq_type_guess )
+ assert_equal( nil, my_seq.seq_type )
+
+ my_seq.seq = "atcg"
+ assert_equal( "DNA", my_seq.seq_type_guess )
+ assert_equal( nil, my_seq.seq_type )
+
+ my_seq.seq = "aucg"
+ assert_equal( "RNA", my_seq.seq_type_guess )
+ assert_equal( nil, my_seq.seq_type )
+
+ my_seq.seq = "seq"
+ assert_equal( "AA", my_seq.seq_type_guess )
+ assert_equal( nil, my_seq.seq_type )
+ end
+
+ def test_seq_type_guess!
+ my_seq = Seq.new
+
+ my_seq.seq = "ATCG"
+ assert_equal( "DNA", my_seq.seq_type_guess! )
+ assert_equal( "DNA", my_seq.seq_type )
+
+ my_seq.seq = "AUCG"
+ assert_equal( "RNA", my_seq.seq_type_guess! )
+ assert_equal( "RNA", my_seq.seq_type )
+
+ my_seq.seq = "SEQ"
+ assert_equal( "AA", my_seq.seq_type_guess! )
+ assert_equal( "AA", my_seq.seq_type )
+
+ my_seq.seq = "atcg"
+ assert_equal( "DNA", my_seq.seq_type_guess! )
+ assert_equal( "DNA", my_seq.seq_type )
+
+ my_seq.seq = "aucg"
+ assert_equal( "RNA", my_seq.seq_type_guess! )
+ assert_equal( "RNA", my_seq.seq_type )
+
+ my_seq.seq = "seq"
+ assert_equal( "AA", my_seq.seq_type_guess! )
+ assert_equal( "AA", my_seq.seq_type )
+ end
+
+ def test_seq_alph
+ my_seq = Seq.new
+
+ assert_equal( %w{ A T C G }, my_seq.seq_alph( "DNA" ) )
+ assert_equal( %w{ A T C G }, my_seq.seq_alph( "dna" ) )
+
+ assert_equal( %w{ A U C G }, my_seq.seq_alph( "RNA" ) )
+ assert_equal( %w{ A U C G }, my_seq.seq_alph( "rna" ) )
+
+ assert_equal( %w{ F L S Y C W P H Q R I M T N K V A D E G }, my_seq.seq_alph( "AA" ) )
+ assert_equal( %w{ F L S Y C W P H Q R I M T N K V A D E G }, my_seq.seq_alph( "aa" ) )
+
+ assert_raise( RuntimeError ) { my_seq.seq_alph( "protein" )}
+ end
+
+ def test_wrap
+ my_seq = Seq.new( "ACTGACTAGCATCGACTACGACTGACACGACGACGACGACCGAACGATCGATCGCAGACGACGCAGCATGACGACGTACGACTACGACT" )
+
+ assert_raise( RuntimeError ) { my_seq.wrap( "FOO" ) }
+ assert_raise( RuntimeError ) { my_seq.wrap( 0 ) }
+ assert_raise( RuntimeError ) { my_seq.wrap( -10 ) }
+
+ assert_equal( "ACTGACTAGCATCGACTACGACTGACACGACGACGACGACCGAACGATCGATCGCAGACGACGCAGCATGACGACGTACG\nACTACGACT", my_seq.wrap )
+ assert_equal( "ACTGACTAGCATCGACTACGACTGACACGACGACGACGAC\nCGAACGATCGATCGCAGACGACGCAGCATGACGACGTACG\nACTACGACT", my_seq.wrap( 40 ) )
+ assert_equal( "ACTGACTAGCATCGACTACGACTGACACGACGACGACGAC\rCGAACGATCGATCGCAGACGACGCAGCATGACGACGTACG\rACTACGACT", my_seq.wrap( 40, "\r" ) )
+
+ assert_equal( "ACTGACTAGCATCGACTACGACTGACACGACGACGACGACCGAACGATCGATCGCAGACGACGCAGCATGACGACGTACGACTACGACT", my_seq.seq )
+ end
+
+ def test_wrap!
+ my_seq = Seq.new( "ACTGACTAGCATCGACTACGACTGACACGACGACGACGACCGAACGATCGATCGCAGACGACGCAGCATGACGACGTACGACTACGACT" )
+
+ my_seq.wrap!
+
+ assert_equal( "ACTGACTAGCATCGACTACGACTGACACGACGACGACGACCGAACGATCGATCGCAGACGACGCAGCATGACGACGTACG\nACTACGACT", my_seq.seq )
+
+ my_seq.wrap!( 40 )
+
+ assert_equal( "ACTGACTAGCATCGACTACGACTGACACGACGACGACGAC\nCGAACGATCGATCGCAGACGACGCAGCATGACGACGTACG\nACTACGACT", my_seq.seq )
+
+ my_seq.wrap!( 40, "\r" )
+
+ assert_equal( "ACTGACTAGCATCGACTACGACTGACACGACGACGACGAC\rCGAACGATCGATCGCAGACGACGCAGCATGACGACGTACG\rACTACGACT", my_seq.seq )
+ end
+
+ def test_generate
+ my_seq = Seq.new
+
+ my_seq.seq_type = "AA"
+
+ assert_raise( RuntimeError ) { my_seq.generate( "FOO" ) }
+ assert_raise( RuntimeError ) { my_seq.generate( 0 ) }
+ assert_raise( RuntimeError ) { my_seq.generate( -10 ) }
+
+ seq = my_seq.generate( 40 )
+
+ assert_equal( 40, seq.length )
+
+ assert_equal( nil, my_seq.seq )
+ end
+
+ def test_generate!
+ my_seq = Seq.new
+
+ my_seq.seq_type = "AA"
+
+ gen_seq = my_seq.generate!( 40 )
+
+ assert_equal( 40, gen_seq.length )
+ assert_equal( 40, my_seq.seq.length )
+
+ assert_equal( gen_seq, my_seq.seq )
+ end
+
+ def test_Seq_AA_new
+ my_seq1 = Seq::AA.new
+ assert_equal( nil, my_seq1.seq )
+ assert_equal( "AA", my_seq1.seq_type )
+
+ my_seq2 = Seq::AA.new( "SEQ" )
+ assert_equal( "SEQ", my_seq2.seq )
+ assert_equal( "AA", my_seq2.seq_type )
+ end
+end
+