remove \r
[extl.git] / extl / intelligence / ann / test / bp_network_test.h
blobd4695aabeb51a7566ce45afc941485b4827a17b5
1 /* ///////////////////////////////////////////////////////////////////////
2 * File: bp_network_test.h
4 * Created: 08.12.17
5 * Updated: 08.12.17
7 * Brief: Unit-testing
9 * [<Home>]
10 * Copyright (c) 2008-2020, Waruqi All rights reserved.
11 * //////////////////////////////////////////////////////////////////// */
12 #ifndef EXTL_INTELLIGENCE_ANN_BP_NETWORK_TEST_H
13 #define EXTL_INTELLIGENCE_ANN_BP_NETWORK_TEST_H
15 /* ///////////////////////////////////////////////////////////////////////
16 * unit_test namespace
18 EXTL_INTELLIGENCE_BEGIN_WHOLE_NAMESPACE
19 EXTL_TEST_NAME_BEGIN_NAMESPACE(bp_network_test)
21 /* ///////////////////////////////////////////////////////////////////////
22 * Unit-testing
24 static int bp_network_test()
26 /* ///////////////////////////////////////////////////////////////////////
27 * train xor
29 * 0 0 => 0
30 * 0 1 => 1
31 * 1 0 => 1
32 * 1 1 => 0
34 EXTL_TEST_TRACE(_T("bp_network_test: train xor\n"));
35 typedef bp_network<2, 1> xor_bp_type;
36 typedef xor_bp_type::layers_type xor_layers_type;
37 xor_bp_type xor_bp(xor_layers_type(10), 0.5);
38 EXTL_NS_TEST(xor_tester)<xor_bp_type> xtr;
39 xtr.test(xor_bp, 50);
41 /* ///////////////////////////////////////////////////////////////////////
42 * train not
44 * 0 0 => 1 1
45 * 0 1 => 1 0
46 * 1 0 => 0 1
47 * 1 1 => 0 0
49 EXTL_TEST_TRACE(_T("bp_network_test: train not\n"));
50 typedef bp_network<2, 2> not_bp_type;
51 typedef not_bp_type::layers_type not_layers_type;
52 typedef not_bp_type::sample_type not_sample_type;
53 typedef not_bp_type::samples_type not_samples_type;
54 not_bp_type not_bp(not_layers_type(10), 0.5);
55 EXTL_NS_TEST(not_tester)<not_bp_type> ntr;
56 ntr.test(not_bp, 50);
58 /* ///////////////////////////////////////////////////////////////////////
59 * train sin
60 * [0, 2 * pi]
62 EXTL_TEST_TRACE(_T("bp_network_test: train sin(0, 2 * pi)\n"));
63 typedef bp_network<8, 8> sin_bp_type;
64 typedef sin_bp_type::layers_type sin_layers_type;
65 typedef sin_bp_type::sample_type sin_sample_type;
66 typedef sin_bp_type::samples_type sin_samples_type;
67 sin_bp_type sin_bp(sin_layers_type(10), 0.5);
68 EXTL_NS_TEST(sin_tester)<sin_bp_type> str;
69 str.test(sin_bp, 100);
71 return 0;
73 int bp_network_test_ret = bp_network_test();
75 /* ///////////////////////////////////////////////////////////////////////
76 * ::unit_test namespace
78 EXTL_TEST_NAME_END_NAMESPACE(bp_network_test)
79 EXTL_INTELLIGENCE_END_WHOLE_NAMESPACE
80 /* //////////////////////////////////////////////////////////////////// */
81 #endif /* EXTL_INTELLIGENCE_ANN_BP_NETWORK_TEST_H */
82 /* //////////////////////////////////////////////////////////////////// */