diff --git a/unittest/utils/CMakeLists.txt b/unittest/utils/CMakeLists.txt index 5df52f1f9f..d02d378ea6 100644 --- a/unittest/utils/CMakeLists.txt +++ b/unittest/utils/CMakeLists.txt @@ -5,3 +5,7 @@ add_test(Tokenizer test_tokenizer) add_executable(test_utils test_utils.cpp) target_link_libraries(test_utils PRIVATE lammps GTest::GMockMain GTest::GMock GTest::GTest) add_test(Utils test_utils) + +add_executable(test_fmtlib test_fmtlib.cpp) +target_link_libraries(test_fmtlib PRIVATE lammps GTest::GMockMain GTest::GMock GTest::GTest) +add_test(FmtLib test_fmtlib) diff --git a/unittest/utils/test_fmtlib.cpp b/unittest/utils/test_fmtlib.cpp new file mode 100644 index 0000000000..e0eec85b2d --- /dev/null +++ b/unittest/utils/test_fmtlib.cpp @@ -0,0 +1,40 @@ +#include "lmptype.h" +#include "gtest/gtest.h" +#include "gmock/gmock.h" +#include "fmt/format.h" +#include + +using namespace LAMMPS_NS; +using ::testing::Eq; + +// this tests a subset of {fmt} that is most relevant to LAMMPS + +TEST(Fmtlib, insert_string) { + const char word[] = "word"; + auto text = fmt::format("word {}",word); + ASSERT_THAT(text, Eq("word word")); +} + +TEST(Fmtlib, insert_int) { + const int word = 333; + auto text = fmt::format("word {}",word); + ASSERT_THAT(text, Eq("word 333")); +} + +TEST(Fmtlib, insert_neg_int) { + const int word = -333; + auto text = fmt::format("word {}",word); + ASSERT_THAT(text, Eq("word -333")); +} + +TEST(Fmtlib, insert_double) { + const double word = 1.5; + auto text = fmt::format("word {}",word); + ASSERT_THAT(text, Eq("word 1.5")); +} + +TEST(Fmtlib, insert_neg_double) { + const double word = -1.5; + auto text = fmt::format("word {}",word); + ASSERT_THAT(text, Eq("word 1.5")); +}