From: martinahansen Date: Tue, 30 Jun 2009 17:03:36 +0000 (+0000) Subject: added unit testing for ruby X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=cc08d0fa4a091ff69f89174eeb23ed310549a042;p=biopieces.git added unit testing for ruby git-svn-id: http://biopieces.googlecode.com/svn/trunk@546 74ccb610-7750-0410-82ae-013aeee3265d --- diff --git a/code_ruby/Maasha/test/test_seq.rb b/code_ruby/Maasha/test/test_seq.rb new file mode 100755 index 0000000..5eddd7e --- /dev/null +++ b/code_ruby/Maasha/test/test_seq.rb @@ -0,0 +1,161 @@ +#!/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 +