From 27a93f12d58a0f4a326d5409cbd6b16b83a80f67 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 31 Oct 2022 15:00:37 -0400 Subject: [PATCH] simplify and make test more specific --- src/thermo.cpp | 6 ++---- unittest/utils/test_utils.cpp | 12 ++++++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/thermo.cpp b/src/thermo.cpp index 9d54093512..8dccceae8d 100644 --- a/src/thermo.cpp +++ b/src/thermo.cpp @@ -678,12 +678,10 @@ void Thermo::modify_params(int narg, char **arg) format_int_user.replace(found, 1, std::string(BIGINT_FORMAT).substr(1)); } else if (strcmp(arg[iarg + 1], "float") == 0) { format_float_user = arg[iarg + 2]; - } else if (! utils::is_integer(arg[iarg + 1]) - && utils::is_type(arg[iarg + 1]) == 0) { + } else if (utils::strmatch(arg[iarg + 1], "^\\d*\\*\\d*$")) { // handles cases such as 2*6; currently doesn't allow negatives int nlo, nhi; - utils::bounds(FLERR, arg[iarg + 1], 1, nfield_initial, nlo, nhi, - error); + utils::bounds(FLERR, arg[iarg + 1], 1, nfield_initial, nlo, nhi, error); int icol = -1; for (int i = nlo - 1; i < nhi; i++) { if (i < 0) icol = nfield_initial + i + 1; // doesn't happen currently diff --git a/unittest/utils/test_utils.cpp b/unittest/utils/test_utils.cpp index f52bc479f3..bd734bbcfd 100644 --- a/unittest/utils/test_utils.cpp +++ b/unittest/utils/test_utils.cpp @@ -631,6 +631,18 @@ TEST(Utils, strmatch_whitespace_nonwhitespace) ASSERT_TRUE(utils::strmatch(" 5.0 angles\n", "^\\s*\\S+\\s+\\S+\\s")); } +TEST(Utils, strmatch_range) +{ + ASSERT_TRUE(utils::strmatch("*11", "^\\d*\\*\\d*$")); + ASSERT_TRUE(utils::strmatch("2*11", "^\\d*\\*\\d*$")); + ASSERT_TRUE(utils::strmatch("5*", "^\\d*\\*\\d*$")); + ASSERT_TRUE(utils::strmatch("*", "^\\d*\\*\\d*$")); + ASSERT_FALSE(utils::strmatch("x5*", "^\\d*\\*\\d*$")); + ASSERT_FALSE(utils::strmatch("x*", "^\\d*\\*\\d*$")); + ASSERT_FALSE(utils::strmatch("*a", "^\\d*\\*\\d*$")); + ASSERT_FALSE(utils::strmatch("1*2d", "^\\d*\\*\\d*$")); +} + TEST(Utils, strfind_beg) { ASSERT_THAT(utils::strfind("rigid/small/omp", "^rigid"), StrEq("rigid"));