dirname.cpp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include <test_common.h>
  2. #include <igl/dirname.h>
  3. #include <string>
  4. #include <vector>
  5. #include <tuple>
  6. TEST_CASE("dirname: examples", "[igl]")
  7. {
  8. const std::vector<
  9. std::tuple<std::string,std::string> >
  10. examples =
  11. {
  12. std::make_tuple("/foo" ,"/" ),
  13. std::make_tuple("/foo/" ,"/" ),
  14. std::make_tuple("/foo//" ,"/" ),
  15. std::make_tuple("/foo/./" ,"/foo" ),
  16. std::make_tuple("/foo/bar" ,"/foo" ),
  17. std::make_tuple("/foo/bar." ,"/foo" ),
  18. std::make_tuple("/foo/bar.txt" ,"/foo" ),
  19. std::make_tuple("/foo/bar.txt.zip" ,"/foo" ),
  20. std::make_tuple("/foo/bar.dir/" ,"/foo" ),
  21. std::make_tuple("/foo/bar.dir/file" ,"/foo/bar.dir"),
  22. std::make_tuple("/foo/bar.dir/file.txt","/foo/bar.dir"),
  23. std::make_tuple("." ,"." ),
  24. std::make_tuple("../foo" ,".." ),
  25. std::make_tuple("./foo" ,"." ),
  26. std::make_tuple("../foo/" ,".." ),
  27. std::make_tuple("foo/" ,"." ),
  28. std::make_tuple("foo//" ,"." ),
  29. std::make_tuple("foo/./" ,"foo" ),
  30. std::make_tuple("foo/bar" ,"foo" ),
  31. std::make_tuple("foo/bar." ,"foo" ),
  32. std::make_tuple("foo/bar.txt" ,"foo" ),
  33. std::make_tuple("foo/bar.txt.zip" ,"foo" ),
  34. std::make_tuple("foo/bar.dir/" ,"foo" ),
  35. std::make_tuple("foo/bar.dir/file" ,"foo/bar.dir"),
  36. std::make_tuple("foo/bar.dir/file.txt","foo/bar.dir")
  37. };
  38. for(const auto & example : examples)
  39. {
  40. std::string d;
  41. d = igl::dirname(std::get<0>(example));
  42. REQUIRE (d == std::get<1>(example));
  43. }
  44. }