Implemented more unit tests; stuck on atomfile
This commit is contained in:
@ -1,13 +1,14 @@
|
||||
// unit tests for extracting compute data from a LAMMPS instance through the
|
||||
// Fortran wrapper
|
||||
#include <cstdio>
|
||||
|
||||
#include "lammps.h"
|
||||
#include "library.h"
|
||||
#include <mpi.h>
|
||||
#include <string>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cstdint>
|
||||
#include <cmath>
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
@ -22,18 +23,19 @@ void f_lammps_setup_extract_variable();
|
||||
int f_lammps_extract_variable_index_1();
|
||||
int f_lammps_extract_variable_index_2();
|
||||
int f_lammps_extract_variable_loop();
|
||||
double f_lammps_extract_variable_loop_pad();
|
||||
void f_lammps_setup_extract_variable_world();
|
||||
void f_lammps_setup_extract_variable_universe();
|
||||
int f_lammps_setup_extract_variable_uloop();
|
||||
void f_lammps_setup_extract_variable_string();
|
||||
void f_lammps_setup_extract_variable_format();
|
||||
void f_lammps_setup_extract_variable_getenv();
|
||||
void f_lammps_setup_extract_variable_file();
|
||||
void f_lammps_setup_extract_variable_atomfile();
|
||||
double f_lammps_setup_extract_variable_python();
|
||||
double f_lammps_setup_extract_variable_timer();
|
||||
double f_lammps_setup_extract_variable_internal();
|
||||
char* f_lammps_extract_variable_loop_pad();
|
||||
char* f_lammps_extract_variable_world();
|
||||
char* f_lammps_extract_variable_universe();
|
||||
int f_lammps_extract_variable_uloop();
|
||||
char* f_lammps_extract_variable_string();
|
||||
char* f_lammps_extract_variable_format();
|
||||
char* f_lammps_extract_variable_format_pad();
|
||||
char* f_lammps_extract_variable_getenv();
|
||||
char* f_lammps_extract_variable_file();
|
||||
double f_lammps_extract_variable_atomfile(int);
|
||||
double f_lammps_extract_variable_python();
|
||||
double f_lammps_extract_variable_timer();
|
||||
double f_lammps_extract_variable_internal();
|
||||
double f_lammps_extract_variable_equal_natoms();
|
||||
double f_lammps_extract_variable_equal_dt();
|
||||
double f_lammps_extract_variable_vector(int);
|
||||
@ -55,7 +57,6 @@ protected:
|
||||
char** argv = (char**) args;
|
||||
int argc = sizeof(args) / sizeof(const char*);
|
||||
::testing::internal::CaptureStdout();
|
||||
std::fprintf(stderr,"THIS IS A TEST\n");
|
||||
lmp = (LAMMPS_NS::LAMMPS*)f_lammps_with_c_args(argc, argv);
|
||||
std::string output = ::testing::internal::GetCapturedStdout();
|
||||
EXPECT_STREQ(output.substr(0, 8).c_str(), "LAMMPS (");
|
||||
@ -83,5 +84,120 @@ TEST_F(LAMMPS_extract_variable, index)
|
||||
TEST_F(LAMMPS_extract_variable, loop)
|
||||
{
|
||||
f_lammps_setup_extract_variable();
|
||||
EXPECT_EQ(f_lammps_extract_variable_loop(), 1);
|
||||
int i;
|
||||
for ( i = 1; i <= 10; i++ ) {
|
||||
EXPECT_EQ(f_lammps_extract_variable_loop(), i);
|
||||
lammps_command(lmp, "next lp");
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(LAMMPS_extract_variable, loop_pad)
|
||||
{
|
||||
f_lammps_setup_extract_variable();
|
||||
int i;
|
||||
char str[10];
|
||||
char* fstr;
|
||||
for ( i = 1; i <= 10; i++ ) {
|
||||
std::sprintf(str,"%02d",i);
|
||||
fstr = f_lammps_extract_variable_loop_pad();
|
||||
EXPECT_STREQ(fstr, str);
|
||||
std::free(fstr);
|
||||
lammps_command(lmp, "next lp_pad");
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(LAMMPS_extract_variable, world)
|
||||
{
|
||||
f_lammps_setup_extract_variable();
|
||||
char* fstr = f_lammps_extract_variable_world();
|
||||
EXPECT_STREQ(fstr, "group1");
|
||||
std::free(fstr);
|
||||
};
|
||||
|
||||
TEST_F(LAMMPS_extract_variable, universe)
|
||||
{
|
||||
f_lammps_setup_extract_variable();
|
||||
char* fstr = f_lammps_extract_variable_universe();
|
||||
EXPECT_STREQ(fstr, "universe1");
|
||||
std::free(fstr);
|
||||
};
|
||||
|
||||
TEST_F(LAMMPS_extract_variable, uloop)
|
||||
{
|
||||
f_lammps_setup_extract_variable();
|
||||
EXPECT_EQ(f_lammps_extract_variable_uloop(), 1);
|
||||
};
|
||||
|
||||
TEST_F(LAMMPS_extract_variable, string)
|
||||
{
|
||||
f_lammps_setup_extract_variable();
|
||||
char* fstr = f_lammps_extract_variable_string();
|
||||
EXPECT_STREQ(fstr, "this is a string");
|
||||
std::free(fstr);
|
||||
};
|
||||
|
||||
TEST_F(LAMMPS_extract_variable, format)
|
||||
{
|
||||
f_lammps_setup_extract_variable();
|
||||
int i;
|
||||
char str[10];
|
||||
char* fstr;
|
||||
for ( i = 1; i <= 10; i++ ) {
|
||||
std::sprintf(str,"%.6G",std::exp(i));
|
||||
fstr = f_lammps_extract_variable_format();
|
||||
EXPECT_STREQ(fstr, str);
|
||||
std::free(fstr);
|
||||
lammps_command(lmp, "next lp");
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(LAMMPS_extract_variable, format_pad)
|
||||
{
|
||||
f_lammps_setup_extract_variable();
|
||||
int i;
|
||||
char str[10];
|
||||
char* fstr;
|
||||
for ( i = 1; i <= 10; i++ ) {
|
||||
std::sprintf(str,"%08.6G",std::exp(i));
|
||||
fstr = f_lammps_extract_variable_format_pad();
|
||||
EXPECT_STREQ(fstr, str);
|
||||
std::free(fstr);
|
||||
lammps_command(lmp, "next lp");
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(LAMMPS_extract_variable, getenv)
|
||||
{
|
||||
f_lammps_setup_extract_variable();
|
||||
char *env = std::getenv("USERNAME");
|
||||
char *fenv = f_lammps_extract_variable_getenv();
|
||||
EXPECT_STREQ(fenv, env);
|
||||
std::free(fenv);
|
||||
};
|
||||
|
||||
TEST_F(LAMMPS_extract_variable, file)
|
||||
{
|
||||
f_lammps_setup_extract_variable();
|
||||
int i;
|
||||
const char* str[9] = {"hello","god_dag","hola","bonjour","guten_Tag",
|
||||
"konnichiwa","shalom","salve","goedendag"};
|
||||
char* fstr;
|
||||
for ( i = 0; i < 9; i++ ) {
|
||||
fstr = f_lammps_extract_variable_file();
|
||||
EXPECT_STREQ(fstr, str[i]);
|
||||
std::free(fstr);
|
||||
lammps_command(lmp, "next greeting");
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(LAMMPS_extract_variable, atomfile)
|
||||
{
|
||||
f_lammps_setup_extract_variable();
|
||||
EXPECT_DOUBLE_EQ(f_lammps_extract_variable_atomfile(1), 5.2);
|
||||
EXPECT_DOUBLE_EQ(f_lammps_extract_variable_atomfile(2), 1.6);
|
||||
EXPECT_DOUBLE_EQ(f_lammps_extract_variable_atomfile(3), -1.4);
|
||||
/* lammps_command(lmp, "next atfile");
|
||||
EXPECT_DOUBLE_EQ(f_lammps_extract_variable_atomfile(1), -1.1);
|
||||
EXPECT_DOUBLE_EQ(f_lammps_extract_variable_atomfile(2), 0.0);
|
||||
EXPECT_DOUBLE_EQ(f_lammps_extract_variable_atomfile(3), 2.5); */
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user