void cryptos::s1(bybuff& tk, bybuff& r1, bybuff& r2, bybuff& stk)const { bybuff sr1(r1.buffer()+8,r1.length()-8); bybuff sr2(r2.buffer()+8,r2.length()-8); sr1 << sr2; _eee(tk, sr1, stk); }
void reverse ( const char *arg ) { // Round trip string_ref sr1 ( arg ); std::string string1 ( sr1.rbegin (), sr1.rend ()); string_ref sr2 ( string1 ); std::string string2 ( sr2.rbegin (), sr2.rend ()); BOOST_CHECK ( std::equal ( sr2.rbegin (), sr2.rend (), arg )); BOOST_CHECK ( string2 == arg ); BOOST_CHECK ( std::equal ( sr1.begin (), sr1.end (), string2.begin ())); }
void find ( const char *arg ) { string_ref sr1 ( arg ); const char *p = arg; // Find everything at the start while ( !sr1.empty ()) { string_ref::size_type pos = sr1.find(*p); BOOST_CHECK ( pos == 0 ); sr1.remove_prefix (1); ++p; } // Find everything at the end sr1 = arg; p = arg + strlen ( arg ) - 1; while ( !sr1.empty ()) { string_ref::size_type pos = sr1.rfind(*p); BOOST_CHECK ( pos == sr1.size () - 1 ); sr1.remove_suffix (1); --p; } // Find everything at the start sr1 = arg; p = arg; while ( !sr1.empty ()) { string_ref::size_type pos = sr1.find_first_of(*p); BOOST_CHECK ( pos == 0 ); sr1.remove_prefix (1); ++p; } // Find everything at the end sr1 = arg; p = arg + strlen ( arg ) - 1; while ( !sr1.empty ()) { string_ref::size_type pos = sr1.find_last_of(*p); BOOST_CHECK ( pos == sr1.size () - 1 ); sr1.remove_suffix (1); --p; } }