add tests for new library APIs
This commit is contained in:
@ -780,6 +780,25 @@ TEST_F(VariableTest, Format)
|
|||||||
// TEST_FAILURE(".*ERROR: Incorrect conversion in format string.*",
|
// TEST_FAILURE(".*ERROR: Incorrect conversion in format string.*",
|
||||||
// command("print \"${f1idx}\""););
|
// command("print \"${f1idx}\""););
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(VariableTest, Set)
|
||||||
|
{
|
||||||
|
BEGIN_HIDE_OUTPUT();
|
||||||
|
command("variable three string three");
|
||||||
|
command("variable ten internal 10.0");
|
||||||
|
END_HIDE_OUTPUT();
|
||||||
|
ASSERT_EQ(variable->nvar, 3);
|
||||||
|
ASSERT_THAT(variable->retrieve("three"), StrEq("three"));
|
||||||
|
ASSERT_THAT(variable->retrieve("ten"), StrEq("10"));
|
||||||
|
|
||||||
|
ASSERT_EQ(variable->internalstyle(variable->find("three")), 0);
|
||||||
|
ASSERT_EQ(variable->internalstyle(variable->find("ten")), 1);
|
||||||
|
|
||||||
|
variable->set_string("three", "new");
|
||||||
|
ASSERT_THAT(variable->retrieve("three"), StrEq("new"));
|
||||||
|
variable->internal_set(variable->find("ten"), -2.5);
|
||||||
|
ASSERT_THAT(variable->retrieve("ten"), StrEq("-2.5"));
|
||||||
|
}
|
||||||
} // namespace LAMMPS_NS
|
} // namespace LAMMPS_NS
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
|
|||||||
@ -361,15 +361,23 @@ FUNCTION f_lammps_extract_variable_vector(i) BIND(C)
|
|||||||
f_lammps_extract_variable_vector = vector(i)
|
f_lammps_extract_variable_vector = vector(i)
|
||||||
END FUNCTION f_lammps_extract_variable_vector
|
END FUNCTION f_lammps_extract_variable_vector
|
||||||
|
|
||||||
SUBROUTINE f_lammps_set_variable_string() BIND(C)
|
SUBROUTINE f_lammps_set_string_variable() BIND(C)
|
||||||
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_double, c_int
|
|
||||||
USE LIBLAMMPS
|
USE LIBLAMMPS
|
||||||
USE keepstuff, ONLY : lmp, f2c_string
|
USE keepstuff, ONLY : lmp, f2c_string
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
CHARACTER(LEN=40) :: string
|
CHARACTER(LEN=40) :: string
|
||||||
|
|
||||||
string = "this is the new string"
|
string = "this is the new string"
|
||||||
CALL lmp%set_variable('str', string)
|
CALL lmp%set_string_variable('str', string)
|
||||||
END SUBROUTINE f_lammps_set_variable_string
|
END SUBROUTINE f_lammps_set_string_variable
|
||||||
|
|
||||||
|
SUBROUTINE f_lammps_set_internal_variable() BIND(C)
|
||||||
|
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_double
|
||||||
|
USE LIBLAMMPS
|
||||||
|
USE keepstuff, ONLY : lmp, f2c_string
|
||||||
|
IMPLICIT NONE
|
||||||
|
|
||||||
|
CALL lmp%set_internal_variable('int', -2.5_c_double)
|
||||||
|
END SUBROUTINE f_lammps_set_internal_variable
|
||||||
|
|
||||||
! vim: sts=2 ts=2 sw=2 et
|
! vim: sts=2 ts=2 sw=2 et
|
||||||
|
|||||||
@ -43,7 +43,9 @@ double f_lammps_extract_variable_internal();
|
|||||||
double f_lammps_extract_variable_equal();
|
double f_lammps_extract_variable_equal();
|
||||||
double f_lammps_extract_variable_atom(int);
|
double f_lammps_extract_variable_atom(int);
|
||||||
double f_lammps_extract_variable_vector(int);
|
double f_lammps_extract_variable_vector(int);
|
||||||
void f_lammps_set_variable_string();
|
void f_lammps_set_string_variable();
|
||||||
|
void f_lammps_set_internal_variable();
|
||||||
|
|
||||||
char *c_path_join(const char *, const char *);
|
char *c_path_join(const char *, const char *);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,7 +157,7 @@ TEST_F(LAMMPS_extract_variable, string)
|
|||||||
char *fstr = f_lammps_extract_variable_string();
|
char *fstr = f_lammps_extract_variable_string();
|
||||||
EXPECT_STREQ(fstr, "this is a string");
|
EXPECT_STREQ(fstr, "this is a string");
|
||||||
std::free(fstr);
|
std::free(fstr);
|
||||||
f_lammps_set_variable_string();
|
f_lammps_set_string_variable();
|
||||||
fstr = f_lammps_extract_variable_string();
|
fstr = f_lammps_extract_variable_string();
|
||||||
EXPECT_STREQ(fstr, "this is the new string");
|
EXPECT_STREQ(fstr, "this is the new string");
|
||||||
std::free(fstr);
|
std::free(fstr);
|
||||||
@ -254,6 +256,8 @@ TEST_F(LAMMPS_extract_variable, internal)
|
|||||||
{
|
{
|
||||||
f_lammps_setup_extract_variable();
|
f_lammps_setup_extract_variable();
|
||||||
EXPECT_DOUBLE_EQ(f_lammps_extract_variable_internal(), 4.0);
|
EXPECT_DOUBLE_EQ(f_lammps_extract_variable_internal(), 4.0);
|
||||||
|
f_lammps_set_internal_variable();
|
||||||
|
EXPECT_DOUBLE_EQ(f_lammps_extract_variable_internal(), -2.5);
|
||||||
};
|
};
|
||||||
|
|
||||||
TEST_F(LAMMPS_extract_variable, equal)
|
TEST_F(LAMMPS_extract_variable, equal)
|
||||||
|
|||||||
@ -475,6 +475,26 @@ create_atoms 1 single &
|
|||||||
a = self.lmp.extract_variable("a")
|
a = self.lmp.extract_variable("a")
|
||||||
self.assertEqual(a, 3.14)
|
self.assertEqual(a, 3.14)
|
||||||
|
|
||||||
|
def test_extract_variable_stringstyle(self):
|
||||||
|
self.lmp.command("variable a string xxx")
|
||||||
|
a = self.lmp.extract_variable("a")
|
||||||
|
self.assertEqual(a, 'xxx')
|
||||||
|
|
||||||
|
rv = self.lmp.set_string_variable("a","20")
|
||||||
|
a = self.lmp.extract_variable("a")
|
||||||
|
self.assertEqual(a, '20')
|
||||||
|
self.assertEqual(rv, 0)
|
||||||
|
|
||||||
|
def test_extract_variable_internalstyle(self):
|
||||||
|
self.lmp.command("variable a internal 2.0")
|
||||||
|
a = self.lmp.extract_variable("a")
|
||||||
|
self.assertEqual(a, 2.0)
|
||||||
|
|
||||||
|
rv = self.lmp.set_internal_variable("a",-4.5)
|
||||||
|
a = self.lmp.extract_variable("a")
|
||||||
|
self.assertEqual(a, -4.5)
|
||||||
|
self.assertEqual(rv, 0)
|
||||||
|
|
||||||
def test_extract_variable_atomstyle(self):
|
def test_extract_variable_atomstyle(self):
|
||||||
self.lmp.command("units lj")
|
self.lmp.command("units lj")
|
||||||
self.lmp.command("atom_style atomic")
|
self.lmp.command("atom_style atomic")
|
||||||
|
|||||||
Reference in New Issue
Block a user