Add unit tests for PotentialFileReader
This commit is contained in:
@ -38,7 +38,6 @@ class PairComb : public Pair {
|
|||||||
virtual double yasu_char(double *, int &);
|
virtual double yasu_char(double *, int &);
|
||||||
double enegtot;
|
double enegtot;
|
||||||
|
|
||||||
protected:
|
|
||||||
struct Param {
|
struct Param {
|
||||||
double lam11,lam12,lam21,lam22;
|
double lam11,lam12,lam21,lam22;
|
||||||
double c,d,h;
|
double c,d,h;
|
||||||
@ -60,6 +59,7 @@ class PairComb : public Pair {
|
|||||||
static const int NPARAMS_PER_LINE = 49;
|
static const int NPARAMS_PER_LINE = 49;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
protected:
|
||||||
double cutmax; // max cutoff for all elements
|
double cutmax; // max cutoff for all elements
|
||||||
int nelements; // # of unique elements
|
int nelements; // # of unique elements
|
||||||
char **elements; // names of unique elements
|
char **elements; // names of unique elements
|
||||||
|
|||||||
@ -38,7 +38,6 @@ class PairComb3 : public Pair {
|
|||||||
double enegtot;
|
double enegtot;
|
||||||
|
|
||||||
// general potential parameters
|
// general potential parameters
|
||||||
protected:
|
|
||||||
struct Param {
|
struct Param {
|
||||||
int ielement,jelement,kelement,powermint;
|
int ielement,jelement,kelement,powermint;
|
||||||
int ielementgp,jelementgp,kelementgp; //element group
|
int ielementgp,jelementgp,kelementgp; //element group
|
||||||
@ -56,8 +55,11 @@ class PairComb3 : public Pair {
|
|||||||
double veps, vsig, pcna, pcnb, pcnc, pcnd, polz, curl, pcross;
|
double veps, vsig, pcna, pcnb, pcnc, pcnd, polz, curl, pcross;
|
||||||
double paaa, pbbb;
|
double paaa, pbbb;
|
||||||
double curlcut1, curlcut2, curl0;
|
double curlcut1, curlcut2, curl0;
|
||||||
|
static const int NPARAMS_PER_LINE = 74;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
// general setups
|
// general setups
|
||||||
int nelements; // # of unique elements
|
int nelements; // # of unique elements
|
||||||
int ***elem2param; // mapping from element triplets to parameters
|
int ***elem2param; // mapping from element triplets to parameters
|
||||||
|
|||||||
@ -3,3 +3,5 @@ include(GTest)
|
|||||||
add_subdirectory(force-styles)
|
add_subdirectory(force-styles)
|
||||||
|
|
||||||
add_subdirectory(utils)
|
add_subdirectory(utils)
|
||||||
|
|
||||||
|
add_subdirectory(formats)
|
||||||
|
|||||||
4
unittest/formats/CMakeLists.txt
Normal file
4
unittest/formats/CMakeLists.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
add_executable(test_potential_file_reader test_potential_file_reader.cpp)
|
||||||
|
target_link_libraries(test_potential_file_reader PRIVATE lammps GTest::GMock GTest::GTest)
|
||||||
|
add_test(NAME PotentialFileReader COMMAND test_potential_file_reader WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
set_tests_properties(PotentialFileReader PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR}")
|
||||||
57
unittest/formats/test_potential_file_reader.cpp
Normal file
57
unittest/formats/test_potential_file_reader.cpp
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
#include "gmock/gmock.h"
|
||||||
|
#include "gtest/gtest.h"
|
||||||
|
#include "potential_file_reader.h"
|
||||||
|
#include "lammps.h"
|
||||||
|
#include "utils.h"
|
||||||
|
#include "MANYBODY/pair_sw.h"
|
||||||
|
#include "MANYBODY/pair_comb.h"
|
||||||
|
#include "MANYBODY/pair_comb3.h"
|
||||||
|
|
||||||
|
#include <mpi.h>
|
||||||
|
|
||||||
|
using namespace LAMMPS_NS;
|
||||||
|
|
||||||
|
const int LAMMPS_NS::PairSW::Param::NPARAMS_PER_LINE;
|
||||||
|
const int LAMMPS_NS::PairComb::Param::NPARAMS_PER_LINE;
|
||||||
|
const int LAMMPS_NS::PairComb3::Param::NPARAMS_PER_LINE;
|
||||||
|
|
||||||
|
class PotenialFileReaderTest : public ::testing::Test {
|
||||||
|
protected:
|
||||||
|
LAMMPS * lmp;
|
||||||
|
|
||||||
|
void SetUp() override {
|
||||||
|
const char *args[] = {"PotentialFileReaderTest", "-log", "none", "-echo", "screen", "-nocite" };
|
||||||
|
char **argv = (char **)args;
|
||||||
|
int argc = sizeof(args)/sizeof(char *);
|
||||||
|
lmp = new LAMMPS(argc, argv, MPI_COMM_WORLD);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TearDown() override {
|
||||||
|
delete lmp;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
TEST_F(PotenialFileReaderTest, Si) {
|
||||||
|
PotentialFileReader reader(lmp, "Si.sw", "Stillinger-Weber");
|
||||||
|
auto line = reader.next_line(PairSW::Param::NPARAMS_PER_LINE);
|
||||||
|
ASSERT_EQ(utils::count_words(line), PairSW::Param::NPARAMS_PER_LINE);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(PotenialFileReaderTest, Comb) {
|
||||||
|
PotentialFileReader reader(lmp, "ffield.comb", "COMB");
|
||||||
|
auto line = reader.next_line(PairComb::Param::NPARAMS_PER_LINE);
|
||||||
|
ASSERT_EQ(utils::count_words(line), PairComb::Param::NPARAMS_PER_LINE);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(PotenialFileReaderTest, Comb3) {
|
||||||
|
PotentialFileReader reader(lmp, "ffield.comb3", "COMB3");
|
||||||
|
auto line = reader.next_line(PairComb3::Param::NPARAMS_PER_LINE);
|
||||||
|
ASSERT_EQ(utils::count_words(line), PairComb3::Param::NPARAMS_PER_LINE);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
MPI_Init(&argc, &argv);
|
||||||
|
::testing::InitGoogleMock(&argc, argv);
|
||||||
|
return RUN_ALL_TESTS();
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user