Skip to content

Commit

Permalink
Merge branch 'master' of github.com:smistad/FAST
Browse files Browse the repository at this point in the history
  • Loading branch information
smistad committed Dec 8, 2023
2 parents 6022912 + 97c36dd commit cd83457
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 5 deletions.
4 changes: 4 additions & 0 deletions source/FAST/Exporters/FileExporter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@
namespace fast {

void FileExporter::setFilename(std::string filename) {
#ifdef WIN32
m_filename = replace(filename, "\\", "/");
#else
m_filename = filename;
#endif
setModified(true);
}

Expand Down
14 changes: 14 additions & 0 deletions source/FAST/Exporters/Tests/MetaImageExporterTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,20 @@ TEST_CASE("No input given to the MetaImageExporter", "[fast][MetaImageExporter]"
CHECK_THROWS(exporter->update());
}


#ifdef WIN32
TEST_CASE("Windows path slashes used in MetaImageExporter", "[fast][MetaImageExporter]") {
auto image = Image::create(32, 32, TYPE_UINT8, 1); // Create dummy image
createDirectories("mhd_test");
auto exporter = MetaImageExporter::create("mhd_test\\image.mhd")
->connect(image);
CHECK_NOTHROW(exporter->run());

auto importer = MetaImageImporter::create("mhd_test/image.mhd");
CHECK_NOTHROW(importer->run());
}
#endif

TEST_CASE("Write a 2D image with the MetaImageExporter", "[fast][MetaImageExporter]") {
// Create some metadata
Vector3f spacing;
Expand Down
24 changes: 24 additions & 0 deletions source/FAST/Tests/UtilityTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ TEST_CASE("Split", "[split][utility]") {
CHECK(parts[0] == "\"Wee sad");
CHECK(parts[1] == "asd asd ");
CHECK(parts[2] == "asdasd\"");

parts = split("test", "/");
REQUIRE(parts.size() == 1);
CHECK(parts[0] == "test");
}

TEST_CASE("Replace", "[replace][utility]") {
Expand Down Expand Up @@ -65,4 +69,24 @@ TEST_CASE("getFileName", "[getFileName][utility][fast]") {
CHECK(getFileName(str) == "asd_asd.txt");
str = "asd asd.txt";
CHECK(getFileName(str) == "asd asd.txt");
}

TEST_CASE("createDirectories", "[createDirectories][utility][fast]") {
std::string name = "create_directories_test";
CHECK_NOTHROW(createDirectories(name));
CHECK(isDir(name));

std::string name2 = "create_directories_test2/test2/";
CHECK_NOTHROW(createDirectories(name2));
CHECK(isDir(name2));

std::string name3 = "create_directories_test3/test3/test3/";
CHECK_NOTHROW(createDirectories(name3));
CHECK(isDir(name3));

#ifdef WIN32
std::string name4 = "create_directories_test4\\test4\\";
CHECK_NOTHROW(createDirectories(name4));
CHECK(isDir(name4));
#endif
}
13 changes: 8 additions & 5 deletions source/FAST/Utility.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -888,6 +888,8 @@ void createDirectory(std::string path) {


void createDirectories(std::string path) {
if(path.empty())
return;
// Replace \ with / so that this will work on windows
path = replace(path, "\\", "/");
std::vector<std::string> directories = split(path, "/");
Expand All @@ -905,14 +907,15 @@ void createDirectories(std::string path) {
}

directories = filteredDirectories;
#ifdef _WIN32
std::string currentPath = directories[0];
std::string currentPath = "";
#ifdef WIN32
#else
std::string currentPath = "/" + directories[0];
if(path[0] == '/')
currentPath = "/";
#endif
// Create each directory needed
for(int i = 1; i < directories.size(); ++i) {
currentPath += "/" + directories[i];
for(int i = 0; i < directories.size(); ++i) {
currentPath += directories[i] + "/";
try {
createDirectory(currentPath);
} catch(ExistException &e) {
Expand Down

0 comments on commit cd83457

Please sign in to comment.