File: ParameterTest.cpp

package info (click to toggle)
bornagain 23.0-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 103,936 kB
  • sloc: cpp: 423,131; python: 40,997; javascript: 11,167; awk: 630; sh: 318; ruby: 173; xml: 130; makefile: 51; ansic: 24
file content (55 lines) | stat: -rw-r--r-- 1,525 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include "Fit/Param/Parameter.h"

#include "Tests/GTestWrapper/google_test.h"
#include <string>

TEST(Parameter, defaultConstructor)
{
    mumufit::Parameter par;

    EXPECT_EQ(par.name(), "");
    EXPECT_EQ(par.value(), 0.0);
    EXPECT_EQ(par.startValue(), 0.0);
    EXPECT_EQ(par.error(), 0.0);
    EXPECT_EQ(par.step(), 0.0);
    AttLimits expected = AttLimits::limitless();
    EXPECT_EQ(par.limits(), expected);
}

TEST(Parameter, fullConstructor)
{
    AttLimits limits = AttLimits::limited(-10.0, 2.0);

    mumufit::Parameter par("par0", 2.0, limits, 0.2);

    EXPECT_EQ(par.name(), "par0");
    EXPECT_EQ(par.value(), 2.0);
    EXPECT_EQ(par.startValue(), 2.0);
    EXPECT_EQ(par.error(), 0.0);
    EXPECT_EQ(par.step(), 0.2);
    EXPECT_EQ(par.limits().min(), -10.0);
    EXPECT_EQ(par.limits().max(), 2.0);
}

TEST(Parameter, defaultStep)
{
    const double start_value = 2.0;
    const double hardcoded_step_factor = 0.01;
    mumufit::Parameter par("par0", start_value, AttLimits::limitless());
    EXPECT_EQ(par.step(), start_value * hardcoded_step_factor);

    // fit parameter with zero start value
    mumufit::Parameter par2("par0", 0.0, AttLimits::limitless());
    EXPECT_EQ(par2.step(), hardcoded_step_factor);
}

TEST(Parameter, setters)
{
    mumufit::Parameter par("par0", 2.0, AttLimits::limitless(), 0.2);
    par.setValue(42.0);
    EXPECT_EQ(par.value(), 42.0);
    EXPECT_EQ(par.startValue(), 2.0); // start value shouldn't change

    par.setError(43.0);
    EXPECT_EQ(par.error(), 43.0);
}