TEST( libstdhl_cpp_SourceLocation, empty ) { SourceLocation location; EXPECT_EQ( location.begin.line, 1 ); EXPECT_EQ( location.begin.column, 1 ); EXPECT_EQ( location.begin.fileName, nullptr ); EXPECT_EQ( location.begin.fileName, location.fileName() ); EXPECT_EQ( location.end.line, location.begin.line ); EXPECT_EQ( location.end.column, location.begin.column ); EXPECT_EQ( location.end.fileName, location.begin.fileName ); EXPECT_EQ( location.end.fileName, location.fileName() ); EXPECT_FALSE( location != SourceLocation() ); location = location + 10; location = location - 10; EXPECT_TRUE( location == SourceLocation() ); SourceLocation tmp; location += tmp; EXPECT_TRUE( location == SourceLocation() + tmp ); EXPECT_THROW( location.read(), std::domain_error ); }
bool operator==(const SourceLocation &a, const SourceLocation &b) { return a.line() == b.line() && a.column() == b.column() && a.offset() == b.offset() && a.fileName() == b.fileName() ; }
QDebug operator<<(QDebug dbg, const SourceLocation &location) { dbg.nospace() << location.fileName() << " [" << location.line() << ":" << location.column() << "(" << location.offset() << ")]"; return dbg.space(); }