remove \r
[extl.git] / extl / intelligence / ann / test / wga_network_test.h
blob656c202434f633ead1c151b50c47c6d10d066186
1 /* ///////////////////////////////////////////////////////////////////////
2 * File: wga_network_test.h
4 * Created: 08.12.17
5 * Updated: 09.01.13
7 * Brief: Unit-testing
9 * [<Home>]
10 * Copyright (c) 2008-2020, Waruqi All rights reserved.
11 * //////////////////////////////////////////////////////////////////// */
12 #ifndef EXTL_INTELLIGENCE_ANN_WGA_NETWORK_TEST_H
13 #define EXTL_INTELLIGENCE_ANN_WGA_NETWORK_TEST_H
15 /* ///////////////////////////////////////////////////////////////////////
16 * unit_test namespace
18 EXTL_INTELLIGENCE_BEGIN_WHOLE_NAMESPACE
19 EXTL_TEST_NAME_BEGIN_NAMESPACE(wga_network_test)
21 /* ///////////////////////////////////////////////////////////////////////
22 * Unit-testing
24 static int wga_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("wga_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)<wga_network<xor_bp_type> > xtr;
39 wga_network<xor_bp_type> xga(xor_bp);
40 xtr.test(xga, 20);
42 /* ///////////////////////////////////////////////////////////////////////
43 * train not
45 * 0 0 => 1 1
46 * 0 1 => 1 0
47 * 1 0 => 0 1
48 * 1 1 => 0 0
50 EXTL_TEST_TRACE(_T("wga_network_test: train not\n"));
51 typedef bp_network<2, 2> not_bp_type;
52 typedef not_bp_type::layers_type not_layers_type;
53 typedef not_bp_type::sample_type not_sample_type;
54 typedef not_bp_type::samples_type not_samples_type;
55 not_bp_type not_bp(not_layers_type(10), 0.5);
56 EXTL_NS_TEST(not_tester)<wga_network<not_bp_type> > ntr;
57 wga_network<not_bp_type> nga(not_bp);
58 ntr.test(nga, 20);
60 /* ///////////////////////////////////////////////////////////////////////
61 * train sin
62 * [0, 2 * pi]
64 EXTL_TEST_TRACE(_T("wga_network_test: train sin(0, 2 * pi)\n"));
65 typedef bp_network<8, 8> sin_bp_type;
66 typedef sin_bp_type::layers_type sin_layers_type;
67 typedef sin_bp_type::sample_type sin_sample_type;
68 typedef sin_bp_type::samples_type sin_samples_type;
69 sin_bp_type sin_bp(sin_layers_type(10), 0.5);
70 EXTL_NS_TEST(sin_tester)<wga_network<sin_bp_type> > str;
71 wga_network<sin_bp_type> sga(sin_bp);
72 str.test(sga, 100);
74 return 0;
76 int wga_network_test_ret = wga_network_test();
78 /* ///////////////////////////////////////////////////////////////////////
79 * ::unit_test namespace
81 EXTL_TEST_NAME_END_NAMESPACE(wga_network_test)
82 EXTL_INTELLIGENCE_END_WHOLE_NAMESPACE
83 /* //////////////////////////////////////////////////////////////////// */
84 #endif /* EXTL_INTELLIGENCE_ANN_WGA_NETWORK_TEST_H */
85 /* //////////////////////////////////////////////////////////////////// */