BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
jsonutils.test.cpp
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // qt-mvvm: Model-view-view-model framework for large GUI applications
4 //
5 //! @file mvvm/tests/testmodel/jsonutils.test.cpp
6 //! @brief Implements class CLASS?
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2020
11 //! @authors Gennady Pospelov et al, Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
15 #include "google_test.h"
17 #include "mvvm/utils/reallimits.h"
18 #include <limits>
19 
20 using namespace ModelView;
21 
22 class JsonUtilsTest : public ::testing::Test {
23 protected:
25 };
26 
28 
30 {
31  EXPECT_EQ(JsonUtils::ToString(RealLimits::limitless()), "limitless");
32  EXPECT_EQ(JsonUtils::ToString(RealLimits::positive()), "positive");
33  EXPECT_EQ(JsonUtils::ToString(RealLimits::nonnegative()), "nonnegative");
34  EXPECT_EQ(JsonUtils::ToString(RealLimits::lowerLimited(1.0)), "lowerlimited");
35  EXPECT_EQ(JsonUtils::ToString(RealLimits::lowerLimited(1.042)), "lowerlimited");
36  EXPECT_EQ(JsonUtils::ToString(RealLimits::lowerLimited(-0.99)), "lowerlimited");
37  EXPECT_EQ(JsonUtils::ToString(RealLimits::upperLimited(1.0)), "upperlimited");
38  EXPECT_EQ(JsonUtils::ToString(RealLimits::limited(-1.0, 2.0)), "limited");
39 }
40 
42 {
43  EXPECT_EQ(JsonUtils::CreateLimits("limitless"), RealLimits::limitless());
44  EXPECT_EQ(JsonUtils::CreateLimits("positive"), RealLimits::positive());
45  EXPECT_EQ(JsonUtils::CreateLimits("nonnegative"), RealLimits::nonnegative());
46  EXPECT_EQ(JsonUtils::CreateLimits("lowerlimited", 1.0, 0.0), RealLimits::lowerLimited(1.0));
47  EXPECT_EQ(JsonUtils::CreateLimits("upperlimited", 0.0, 42.0), RealLimits::upperLimited(42.0));
48  EXPECT_EQ(JsonUtils::CreateLimits("limited", -1.0, 2.0), RealLimits::limited(-1.0, 2.0));
49 }
static RealLimits limitless()
Creates an object withoud bounds (default)
Definition: reallimits.cpp:66
static RealLimits upperLimited(double bound_value)
Creates an object bounded from the right.
Definition: reallimits.cpp:56
static RealLimits lowerLimited(double bound_value)
Creates an object bounded from the left.
Definition: reallimits.cpp:41
static RealLimits positive()
Creates an object which can have only positive values (>0., zero is not included)
Definition: reallimits.cpp:46
static RealLimits nonnegative()
Creates an object which can have only positive values with 0. included.
Definition: reallimits.cpp:51
static RealLimits limited(double left_bound_value, double right_bound_value)
Creates an object bounded from the left and right.
Definition: reallimits.cpp:61
Defines class CLASS?
Defines class CLASS?
TEST_F(JsonUtilsTest, toString)
MVVM_MODEL_EXPORT RealLimits CreateLimits(const std::string &text, double min=0.0, double max=0.0)
Definition: jsonutils.cpp:60
MVVM_MODEL_EXPORT std::string ToString(const RealLimits &limits)
Returns string representation of RealLimits.
Definition: jsonutils.cpp:42
materialitems.h Collection of materials to populate MaterialModel.
std::string toString(PyObject *obj)
Converts PyObject into string, if possible, or throws exception.
Definition: PyUtils.cpp:24
Defines class CLASS?