diff --git a/modules/seq/base/src/impl/sequence_impl.cc b/modules/seq/base/src/impl/sequence_impl.cc index c90e71c8982e53d11d5c8b176211c144060dd001..1572cd50863aeb82a00660e3a0ba3d8a64a235f9 100644 --- a/modules/seq/base/src/impl/sequence_impl.cc +++ b/modules/seq/base/src/impl/sequence_impl.cc @@ -170,7 +170,7 @@ int SequenceImpl::GetLength() const { char SequenceImpl::GetOneLetterCode(int position) const { - if (position<0 || position>static_cast<int>(seq_string_.length())) + if (position<0 || position>=static_cast<int>(seq_string_.length())) throw Error("Position is not covered in sequence"); return seq_string_[position]; } diff --git a/modules/seq/base/tests/test_alignment.cc b/modules/seq/base/tests/test_alignment.cc index 97ffe338c573c3c6dd75fb3cd33a4fe93330cae7..f8fef7fb6f1fd8c5f2d354c8922f081c6e030196 100644 --- a/modules/seq/base/tests/test_alignment.cc +++ b/modules/seq/base/tests/test_alignment.cc @@ -215,9 +215,9 @@ BOOST_AUTO_TEST_CASE(alignment_aligned_region) BOOST_CHECK_THROW(ar = a.MakeRegion(-1,2,0),std::out_of_range); BOOST_CHECK_THROW(ar = a.MakeRegion(0,7,0),std::out_of_range); - BOOST_CHECK_THROW(ar = a.MakeRegion(2,4,0),std::out_of_range); - BOOST_CHECK_THROW(ar = a.MakeRegion(3,2,0),std::out_of_range); - BOOST_CHECK_THROW(ar = a.MakeRegion(3,3,0),std::out_of_range); + BOOST_CHECK_NO_THROW(ar = a.MakeRegion(2,4,0)); + BOOST_CHECK_NO_THROW(ar = a.MakeRegion(3,2,0)); + BOOST_CHECK_NO_THROW(ar = a.MakeRegion(3,3,0)); } BOOST_AUTO_TEST_SUITE_END()