[Seqan-dev] Failed to create ticket on trac: concatenator iterator problems
My ticket was rejected as spam so I'm posting it here:
I think the difference between the end and the begin iterators of an
infix in a ConcatenatorManyToOne object should equal the length. The
length reports 4 which is correct. The difference does not equal 4. I'm
using svn revision 10211.
{{{
#include <seqan/sequence.h>
#include <stdexcept>
using namespace seqan;
typedef String< Dna5 > string_t;
typedef StringSet< string_t > string_set_t;
typedef ConcatenatorManyToOne< string_set_t > concatenator_t;
typedef Infix< concatenator_t >::Type infix_t;
int
main( int argc, char * argv [] ) {
string_set_t seqs;
appendValue( seqs, string_t( "ACGT" ) );
concatenator_t concat( seqs );
infix_t in( concat, 0, 4 );
if( 4 != length( in ) ) throw std::logic_error( "length() not
working." );
if( difference( begin( in ), end( in ) ) != length( in ) ) throw
std::logic_error( "difference() not working." );
return 0;
}
}}}