📄 path_test.cpp
字号:
BOOST_TEST( p.relative_path().string() == "</>" );
BOOST_TEST( p.branch_path().string() == "/<" );
BOOST_TEST( p.leaf() == ">" );
BOOST_TEST( p.root_name() == "" );
BOOST_TEST( p.root_directory() == "/" );
BOOST_TEST( p.root_path().string() == "/" );
BOOST_TEST( p.has_root_path() );
BOOST_TEST( !p.has_root_name() );
BOOST_TEST( p.has_root_directory() );
BOOST_TEST( p.has_relative_path() );
BOOST_TEST( p.has_leaf() );
BOOST_TEST( p.has_branch_path() );
if ( platform == "POSIX" )
BOOST_TEST( p.is_complete() );
else
BOOST_TEST( !p.is_complete() );
if ( platform == "Windows" )
{
PATH_CHECK( path( "\\", fs::native ), "/" );
PATH_CHECK( path( "\\f", fs::native ), "/f" );
PATH_CHECK( path( "\\foo", fs::native ), "/foo" );
PATH_CHECK( path( "foo\\bar", fs::native ), "foo/bar" );
PATH_CHECK( path( "foo bar", fs::native ), "foo bar" );
PATH_CHECK( path( "c:", fs::native ), "c:" );
PATH_CHECK( path( "c:/", fs::native ), "c:/" );
PATH_CHECK( path( "c:.", fs::native ), "c:" );
PATH_CHECK( path( "c:..", fs::native ), "c:.." );
PATH_CHECK( path( "c:..", fs::native ).normalize(), "c:.." );
PATH_CHECK( path( "c:/.", fs::native ), "c:/" );
PATH_CHECK( path( "c:/..", fs::native ), "c:/" );
PATH_CHECK( path( "c:/..", fs::native ).normalize(), "c:/" );
PATH_CHECK( path( "c:/../", fs::native ), "c:/" );
PATH_CHECK( path( "c:/../", fs::native ).normalize(), "c:/" );
PATH_CHECK( path( "c:/../..", fs::native ), "c:/" );
PATH_CHECK( path( "c:/../..", fs::native ).normalize(), "c:/" );
PATH_CHECK( path( "c:/../foo", fs::native ), "c:/foo" );
PATH_CHECK( path( "c:/../foo", fs::native ).normalize(), "c:/foo" );
PATH_CHECK( path( "c:/../../foo", fs::native ), "c:/foo" );
PATH_CHECK( path( "c:/../../foo", fs::native ).normalize(), "c:/foo" );
PATH_CHECK( path( "c:foo/..", fs::native ), "c:foo/.." );
PATH_CHECK( path( "c:foo/..", fs::native ).normalize(), "c:" );
PATH_CHECK( path( "c:/foo/..", fs::native ), "c:/foo/.." );
PATH_CHECK( path( "c:/foo/..", fs::native ).normalize(), "c:/" );
PATH_CHECK( path( "c:/..foo", fs::native ), "c:/..foo" );
PATH_CHECK( path( "c:/..foo", fs::native ).normalize(), "c:/..foo" );
PATH_CHECK( path( "c:foo", fs::native ), "c:foo" );
PATH_CHECK( path( "c:/foo", fs::native ), "c:/foo" );
PATH_CHECK( path( "//share", fs::native ), "//share" );
PATH_CHECK( path( "//share/", fs::native ), "//share/" );
PATH_CHECK( path( "//share/foo", fs::native ), "//share/foo" );
PATH_CHECK( path( "\\\\share", fs::native ), "//share" );
PATH_CHECK( path( "\\\\share\\", fs::native ), "//share/" );
PATH_CHECK( path( "\\\\share\\foo", fs::native ), "//share/foo" );
PATH_CHECK( path( "c:/foo", fs::native ), "c:/foo" );
PATH_CHECK( path( "prn:", fs::native ), "prn:" );
p = path( "c:", fs::native );
BOOST_TEST( p.relative_path().string() == "" );
BOOST_TEST( p.branch_path().string() == "" );
BOOST_TEST( p.leaf() == "c:" );
BOOST_TEST( p.root_name() == "c:" );
BOOST_TEST( p.root_directory() == "" );
BOOST_TEST( p.root_path().string() == "c:" );
BOOST_TEST( p.has_root_path() );
BOOST_TEST( p.has_root_name() );
BOOST_TEST( !p.has_root_directory() );
BOOST_TEST( !p.has_relative_path() );
BOOST_TEST( p.has_leaf() );
BOOST_TEST( !p.has_branch_path() );
BOOST_TEST( !p.is_complete() );
p = path( "c:foo", fs::native );
BOOST_TEST( p.relative_path().string() == "foo" );
BOOST_TEST( p.branch_path().string() == "c:" );
BOOST_TEST( p.leaf() == "foo" );
BOOST_TEST( p.root_name() == "c:" );
BOOST_TEST( p.root_directory() == "" );
BOOST_TEST( p.root_path().string() == "c:" );
BOOST_TEST( p.has_root_path() );
BOOST_TEST( p.has_root_name() );
BOOST_TEST( !p.has_root_directory() );
BOOST_TEST( p.has_relative_path() );
BOOST_TEST( p.has_leaf() );
BOOST_TEST( p.has_branch_path() );
BOOST_TEST( !p.is_complete() );
p = path( "c:/", fs::native );
BOOST_TEST( p.relative_path().string() == "" );
BOOST_TEST( p.branch_path().string() == "c:" );
BOOST_TEST( p.leaf() == "/" );
BOOST_TEST( p.root_name() == "c:" );
BOOST_TEST( p.root_directory() == "/" );
BOOST_TEST( p.root_path().string() == "c:/" );
BOOST_TEST( p.has_root_path() );
BOOST_TEST( p.has_root_name() );
BOOST_TEST( p.has_root_directory() );
BOOST_TEST( !p.has_relative_path() );
BOOST_TEST( p.has_leaf() );
BOOST_TEST( p.has_branch_path() );
BOOST_TEST( p.is_complete() );
p = path( "c:..", fs::native );
BOOST_TEST( p.relative_path().string() == ".." );
BOOST_TEST( p.branch_path().string() == "c:" );
BOOST_TEST( p.leaf() == ".." );
BOOST_TEST( p.root_name() == "c:" );
BOOST_TEST( p.root_directory() == "" );
BOOST_TEST( p.root_path().string() == "c:" );
BOOST_TEST( p.has_root_path() );
BOOST_TEST( p.has_root_name() );
BOOST_TEST( !p.has_root_directory() );
BOOST_TEST( p.has_relative_path() );
BOOST_TEST( p.has_leaf() );
BOOST_TEST( p.has_branch_path() );
BOOST_TEST( !p.is_complete() );
p = path( "c:/foo", fs::native );
BOOST_TEST( p.relative_path().string() == "foo" );
BOOST_TEST( p.branch_path().string() == "c:/" );
BOOST_TEST( p.leaf() == "foo" );
BOOST_TEST( p.root_name() == "c:" );
BOOST_TEST( p.root_directory() == "/" );
BOOST_TEST( p.root_path().string() == "c:/" );
BOOST_TEST( p.has_root_path() );
BOOST_TEST( p.has_root_name() );
BOOST_TEST( p.has_root_directory() );
BOOST_TEST( p.has_relative_path() );
BOOST_TEST( p.has_leaf() );
BOOST_TEST( p.has_branch_path() );
BOOST_TEST( p.is_complete() );
/* Commented out until the semantics of //share are clearer.
p = path( "//share", fs::native );
BOOST_TEST( p.string() == "//share" );
BOOST_TEST( p.relative_path().string() == "" );
BOOST_TEST( p.branch_path().string() == "" );
BOOST_TEST( p.leaf() == "//share" );
BOOST_TEST( p.root_name() == "//share" );
BOOST_TEST( p.root_directory() == "/" );
BOOST_TEST( p.root_path().string() == "//share/" );
BOOST_TEST( p.has_root_path() );
BOOST_TEST( p.has_root_name() );
BOOST_TEST( !p.has_root_directory() );
BOOST_TEST( !p.has_relative_path() );
BOOST_TEST( p.has_leaf() );
BOOST_TEST( !p.has_branch_path() );
BOOST_TEST( !p.is_complete() );
*/
p = path( "//share/", fs::native );
BOOST_TEST( p.relative_path().string() == "" );
BOOST_TEST( p.branch_path().string() == "//share" );
BOOST_TEST( p.leaf() == "/" );
BOOST_TEST( p.root_name() == "//share" );
BOOST_TEST( p.root_directory() == "/" );
BOOST_TEST( p.root_path().string() == "//share/" );
BOOST_TEST( p.has_root_path() );
BOOST_TEST( p.has_root_name() );
BOOST_TEST( p.has_root_directory() );
BOOST_TEST( !p.has_relative_path() );
BOOST_TEST( p.has_leaf() );
BOOST_TEST( p.has_branch_path() );
BOOST_TEST( p.is_complete() );
p = path( "//share/foo", fs::native );
BOOST_TEST( p.relative_path().string() == "foo" );
BOOST_TEST( p.branch_path().string() == "//share/" );
BOOST_TEST( p.leaf() == "foo" );
BOOST_TEST( p.root_name() == "//share" );
BOOST_TEST( p.root_directory() == "/" );
BOOST_TEST( p.root_path().string() == "//share/" );
BOOST_TEST( p.has_root_path() );
BOOST_TEST( p.has_root_name() );
BOOST_TEST( p.has_root_directory() );
BOOST_TEST( p.has_relative_path() );
BOOST_TEST( p.has_leaf() );
BOOST_TEST( p.has_branch_path() );
BOOST_TEST( p.is_complete() );
p = path( "prn:", fs::native );
BOOST_TEST( p.relative_path().string() == "" );
BOOST_TEST( p.branch_path().string() == "" );
BOOST_TEST( p.leaf() == "prn:" );
BOOST_TEST( p.root_name() == "prn:" );
BOOST_TEST( p.root_directory() == "" );
BOOST_TEST( p.root_path().string() == "prn:" );
BOOST_TEST( p.has_root_path() );
BOOST_TEST( p.has_root_name() );
BOOST_TEST( !p.has_root_directory() );
BOOST_TEST( !p.has_relative_path() );
BOOST_TEST( p.has_leaf() );
BOOST_TEST( !p.has_branch_path() );
BOOST_TEST( p.is_complete() );
itr_ck = path( "c:", fs::native );
BOOST_TEST( *itr_ck.begin() == std::string( "c:" ) );
BOOST_TEST( next( itr_ck.begin() ) == itr_ck.end() );
BOOST_TEST( prior( itr_ck.end() ) == itr_ck.begin() );
BOOST_TEST( *prior( itr_ck.end() ) == std::string( "c:" ) );
itr_ck = path( "c:/", fs::native );
BOOST_TEST( *itr_ck.begin() == std::string( "c:" ) );
BOOST_TEST( *next( itr_ck.begin() ) == std::string( "/" ) );
BOOST_TEST( next( next( itr_ck.begin() )) == itr_ck.end() );
BOOST_TEST( prior( prior( itr_ck.end() )) == itr_ck.begin() );
BOOST_TEST( *prior( itr_ck.end() ) == std::string( "/" ) );
BOOST_TEST( *prior( prior( itr_ck.end() )) == std::string( "c:" ) );
itr_ck = path( "c:foo", fs::native );
BOOST_TEST( *itr_ck.begin() == std::string( "c:" ) );
BOOST_TEST( *next( itr_ck.begin() ) == std::string( "foo" ) );
BOOST_TEST( next(next( itr_ck.begin() )) == itr_ck.end() );
BOOST_TEST( prior(prior( itr_ck.end() )) == itr_ck.begin() );
BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) );
BOOST_TEST( *prior(prior( itr_ck.end() )) == std::string( "c:" ) );
itr_ck = path( "c:/foo", fs::native );
BOOST_TEST( *itr_ck.begin() == std::string( "c:" ) );
BOOST_TEST( *next( itr_ck.begin() ) == std::string( "/" ) );
BOOST_TEST( *next( next( itr_ck.begin() )) == std::string( "foo" ) );
BOOST_TEST( next( next( next( itr_ck.begin() ))) == itr_ck.end() );
BOOST_TEST( prior( prior( prior( itr_ck.end() ))) == itr_ck.begin() );
BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) );
BOOST_TEST( *prior( prior( itr_ck.end() )) == std::string( "/" ) );
BOOST_TEST( *prior( prior( prior( itr_ck.end() ))) == std::string( "c:" ) );
itr_ck = path( "//share", fs::native );
BOOST_TEST( *itr_ck.begin() == std::string( "//share" ) );
BOOST_TEST( next( itr_ck.begin() ) == itr_ck.end() );
BOOST_TEST( prior( itr_ck.end() ) == itr_ck.begin() );
BOOST_TEST( *prior( itr_ck.end() ) == std::string( "//share" ) );
itr_ck = path( "//share/", fs::native );
BOOST_TEST( *itr_ck.begin() == std::string( "//share" ) );
BOOST_TEST( *next( itr_ck.begin() ) == std::string( "/" ) );
BOOST_TEST( next(next( itr_ck.begin() )) == itr_ck.end() );
BOOST_TEST( prior(prior( itr_ck.end() )) == itr_ck.begin() );
BOOST_TEST( *prior( itr_ck.end() ) == std::string( "/" ) );
BOOST_TEST( *prior(prior( itr_ck.end() )) == std::string( "//share" ) );
itr_ck = path( "//share/foo", fs::native );
BOOST_TEST( *itr_ck.begin() == std::string( "//share" ) );
BOOST_TEST( *next( itr_ck.begin() ) == std::string( "/" ) );
BOOST_TEST( *next(next( itr_ck.begin() )) == std::string( "foo" ) );
BOOST_TEST( next(next(next( itr_ck.begin() ))) == itr_ck.end() );
BOOST_TEST( prior(prior(prior( itr_ck.end() ))) == itr_ck.begin() );
BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) );
BOOST_TEST( *prior(prior( itr_ck.end() )) == std::string( "/" ) );
BOOST_TEST( *prior(prior(prior( itr_ck.end() ))) == std::string( "//share" ) );
itr_ck = path( "prn:", fs::native );
BOOST_TEST( *itr_ck.begin() == std::string( "prn:" ) );
BOOST_TEST( next( itr_ck.begin() ) == itr_ck.end() );
BOOST_TEST( prior( itr_ck.end() ) == itr_ck.begin() );
BOOST_TEST( *prior( itr_ck.end() ) == std::string( "prn:" ) );
}
// std::cout << errors << " errors detected\n";
return errors;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -