remove \r
[extl.git] / extl / math / test / expr_varray_test.h
blobdd4016ef930a20e25e4d9de748416898688a1432
1 /* ///////////////////////////////////////////////////////////////////////
2 * File: expr_varray_test.h
4 * Created: 08.08.14
5 * Updated: 08.08.14
7 * Brief: Unit-testing
9 * [<Home>]
10 * Copyright (c) 2008-2020, Waruqi All rights reserved.
11 * //////////////////////////////////////////////////////////////////// */
12 #ifndef EXTL_MATH_EXPR_VARRAY_TEST_H
13 #define EXTL_MATH_EXPR_VARRAY_TEST_H
15 #ifndef EXTL_MATH_EXPR_VARRAY_H
16 # error This file must be included of expr_varray.h
17 #endif
19 /* ///////////////////////////////////////////////////////////////////////
20 * ::unit_test namespace
22 EXTL_BEGIN_NAMESPACE
23 EXTL_TEST_NAME_BEGIN_NAMESPACE(expr_varray_test)
25 /* ///////////////////////////////////////////////////////////////////////
26 * Unit-testing
28 struct expr_varray_test
30 expr_varray_test()
32 typedef buffer_selector<int>::buffer_type buffer_type;
33 typedef basic_varray<int, buffer_type> array_type;
35 array_type ar(1, 1000);
36 array_type ar2(1, 1000);
38 expr_varray<int, array_type > par(ar);
39 expr_varray<int, array_type > par2(ar2);
41 /*clock_counter t;
42 int volatile i;
44 EXTL_TEST_TRACE(_T("//////////////////////////////////////////////////////////////////////////"));
45 EXTL_TEST_TRACE(_T("expr_varray Test:\n"));
47 t.begin();
48 for (i = 0; i < 10000; ++i)
50 ar2 = ar + ar + ar + ar;
52 t.end();
53 EXTL_TEST_TRACE(_T("basic_varray: %d"), t.ms());
55 // Slowly now, need optimization
56 t.begin();
57 for (i = 0; i < 10000; ++i)
59 par2 = par + par + par + par;
62 t.end();
63 EXTL_TEST_TRACE(_T("expr_varray: %d\n"), t.ms());
65 t.begin();
66 for (i = 0; i < 10000; ++i)
68 int volatile a = (ar + ar + ar + ar)[0];
70 t.end();
71 EXTL_TEST_TRACE(_T("(ar + ar + ar + ar)[0]: %d"), t.ms());
73 t.begin();
74 for (i = 0; i < 10000; ++i)
76 int volatile a = ar[0] + ar[0] + ar[0] + ar[0];
78 t.end();
79 EXTL_TEST_TRACE(_T("ar[0] + ar[0] + ar[0] + ar[0]: %d"), t.ms());
81 t.begin();
82 for (i = 0; i < 10000; ++i)
84 int volatile a = (par + par + par + par)[0];
87 t.end();
88 EXTL_TEST_TRACE(_T("(par + par + par + par)[0]: %d\n"), t.ms());*/
90 par2 = par + par + par - par;
91 EXTL_ASSERT(ar2[10] == 2);
93 #ifdef EXTL_MATH_EOP_SCALAR_SUPPORT
94 par2 = par + par + par - par * 5;
95 EXTL_ASSERT(ar2[10] == -2);
96 #endif
100 expr_varray_test g_expr_varray_test;
102 /* ///////////////////////////////////////////////////////////////////////
103 * ::unit_test namespace
105 EXTL_TEST_NAME_END_NAMESPACE(expr_varray_test)
106 EXTL_END_NAMESPACE
108 /* //////////////////////////////////////////////////////////////////// */
109 #endif /* EXTL_MATH_EXPR_VARRAY_TEST_H */
110 /* //////////////////////////////////////////////////////////////////// */