#include "../LineTrackingStreambuf.h" #include #include #include static auto init= Alepha::Utility::enroll <=[] { using namespace Alepha::Testing::exports; "Do we see line numbers in a simple case?"_test <=[]( TestState &test ) { const std::string c= "One Two Three\nFour\n\nFive\n\n\n\nSeven"; std::istringstream iss{ c }; iss >> Alepha::IOStreams::TrackLines{}; using Alepha::IOStreams::getLineNumber; std::string s; test.expect( getLineNumber( iss ) == 1, "Line should be 1." ); std::cerr << "Num: " << getLineNumber( iss ) << std::endl; iss >> s; // One std::cerr << "s: " << s << std::endl; test.expect( getLineNumber( iss ) == 1, "Line should be 1." ); std::cerr << "Num: " << getLineNumber( iss ) << std::endl; iss >> s; // Two std::cerr << "s: " << s << std::endl; test.expect( getLineNumber( iss ) == 1, "Line should be 1." ); std::cerr << "Num: " << getLineNumber( iss ) << std::endl; iss >> s; // Three std::cerr << "s: " << s << std::endl; test.expect( getLineNumber( iss ) == 1, "Line should be 1." ); std::cerr << "Num: " << getLineNumber( iss ) << std::endl; iss >> s; // Four std::cerr << "s: " << s << std::endl; test.expect( getLineNumber( iss ) == 2, "Line should be 2." ); std::cerr << "Num: " << getLineNumber( iss ) << std::endl; iss >> s; // Five std::cerr << "s: " << s << std::endl; test.expect( getLineNumber( iss ) == 4, "Line should be 4." ); std::cerr << "Num: " << getLineNumber( iss ) << std::endl; iss >> s; // Five std::cerr << "s: " << s << std::endl; test.expect( getLineNumber( iss ) == 8, "Line should be 8." ); }; };