1 //   OpenNN: Open Neural Networks Library
2 //   www.opennn.net
3 //
4 //   B O U N D I N G   L A Y E R   T E S T   C L A S S   H E A D E R
5 //
6 //   Artificial Intelligence Techniques SL
7 //   artelnics@artelnics.com
8 
9 #ifndef BOUNDINGLAYERTEST_H
10 #define BOUNDINGLAYERTEST_H
11 
12 // Unit testing includes
13 
14 #include "unit_testing.h"
15 
16 using namespace OpenNN;
17 
18 class BoundingLayerTest : public UnitTesting
19 {
20 
21 #define STRING(x) #x
22 #define TOSTRING(x) STRING(x)
23 #define LOG __FILE__ ":" TOSTRING(__LINE__)"\n"
24 
25 public:
26 
27    explicit BoundingLayerTest();
28 
29    virtual ~BoundingLayerTest();
30 
31    // Constructor and destructor methods
32 
33    void test_constructor();
34    void test_destructor();
35 
36    // Assignment operators methods
37 
38    void test_assignment_operator();
39 
40    // Get methods
41 
42    // Architecture
43 
44    void test_get_neurons_number();
45 
46    // Variables bounds
47 
48    void test_get_lower_bounds();
49    void test_get_lower_bound();
50 
51    void test_get_upper_bounds();
52    void test_get_upper_bound();
53 
54    void test_get_bounds();
55    void test_get_type();
56 
57    // Display messages
58 
59    void test_get_display();
60 
61    // Set methods
62 
63    void test_set();
64    void test_set_default();
65 
66    // Variables bounds
67 
68    void test_set_lower_bounds();
69    void test_set_lower_bound();
70 
71    void test_set_upper_bounds();
72    void test_set_upper_bound();
73 
74    void test_set_bounds();
75 
76    // Display messages
77 
78    void test_set_display();
79 
80    // Output methods
81 
82    void test_calculate_outputs();
83    void test_calculate_derivatives();
84 
85    // Expression methods
86 
87    void test_write_expression();
88 
89    // Unit testing methods
90 
91    void run_test_case();
92 };
93 
94 #endif
95 
96 // OpenNN: Open Neural Networks Library.
97 // Copyright (C) 2005-2020 Artificial Intelligence Techniques, SL.
98 //
99 // This library is free software; you can redistribute it and/or
100 // modify it under the terms of the GNU Lesser General Public
101 // License as published by the Free Software Foundation; either
102 // version 2.1 of the License, or any later version.
103 //
104 // This library is distributed in the hope that it will be useful,
105 // but WITHOUT ANY WARRANTY; without even the implied warranty of
106 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
107 // Lesser General Public License for more details.
108 
109 // You should have received a copy of the GNU Lesser General Public
110 // License along with this library; if not, write to the Free Software
111 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
112