From 3fe9a66e436ab46cf2c82de1053eb89421c6b2a3 Mon Sep 17 00:00:00 2001 From: Serg Kryvonos Date: Tue, 12 Mar 2024 09:13:40 +0100 Subject: [PATCH] Chemistry basic example --- libskrypt/tests/Chemistry.cpp | 24 ++++++++++++++++++++++++ libskrypt/tests/Chemistry.skrypt | 7 +++++++ 2 files changed, 31 insertions(+) create mode 100644 libskrypt/tests/Chemistry.cpp create mode 100644 libskrypt/tests/Chemistry.skrypt diff --git a/libskrypt/tests/Chemistry.cpp b/libskrypt/tests/Chemistry.cpp new file mode 100644 index 0000000..905c870 --- /dev/null +++ b/libskrypt/tests/Chemistry.cpp @@ -0,0 +1,24 @@ +#define BOOST_TEST_MODULE Chemistry test +#include +#include "skrypt.h" + +using namespace ::skrypt; +using namespace std::string_literals; +using namespace std::string_view_literals; + +BOOST_AUTO_TEST_CASE(ChemistryMinimalTest) { + Skrypt skrypt; + skrypt.Load(TEST_SRC_DIR "Chemistry.skrypt"); + + // get the variable + auto variableName = "nv"s; + auto varhost = skrypt.GetVarHost(); + auto& pendingTheVariable = varhost->Host(variableName); + + // check that the variable is already solved + auto& nitrogenValencySolutions = skrypt.Known(pendingTheVariable); + BOOST_TEST(nitrogenValencySolutions.size() == 1); + for (auto& solution : nitrogenValencySolutions) { + BOOST_TEST(solution == 1); + } +} diff --git a/libskrypt/tests/Chemistry.skrypt b/libskrypt/tests/Chemistry.skrypt new file mode 100644 index 0000000..ee4668a --- /dev/null +++ b/libskrypt/tests/Chemistry.skrypt @@ -0,0 +1,7 @@ +nk*nv-ok*ov +ov-2 + +ok-1 +nk-2 + +nv \ No newline at end of file