source: trunk/test/data_lookup_1d_test.cc @ 565

Last change on this file since 565 was 565, checked in by Peter, 16 years ago

removed default row/column in constructors (MatrixLookup? and DataLookup1D)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 3.0 KB
Line 
1// $Id: data_lookup_1d_test.cc 565 2006-03-16 14:19:41Z peter $
2
3#include <c++_tools/gslapi/matrix.h>
4#include <c++_tools/classifier/DataLookup1D.h>
5#include <c++_tools/classifier/MatrixLookup.h>
6
7#include <fstream>
8#include <iostream>
9#include <vector>
10
11using namespace theplu;
12
13gslapi::matrix matrix(size_t n);
14
15int main(const int argc,const char* argv[])
16{
17  using namespace theplu::classifier;
18
19  std::ostream* error;
20  if (argc>1 && argv[1]==std::string("-v"))
21    error = &std::cerr;
22  else {
23    error = new std::ofstream("/dev/null");
24    if (argc>1)
25      std::cout << "lookup_test -v : for printing extra information\n";
26  }
27
28  *error << "Testing Lookup Classes" << std::endl;
29  bool ok = true;
30
31  *error << "Testing DataLookup1D" << std::endl;
32  gslapi::matrix gsl_m1(matrix(5));
33  std::vector<size_t> index_odd;
34  index_odd.push_back(1);
35  index_odd.push_back(3);
36  std::vector<size_t> index_even;
37  index_even.push_back(2);
38  index_even.push_back(0);
39  index_even.push_back(4);
40  classifier::MatrixLookup m1(gsl_m1,index_odd,index_even);
41  *error << "DataLookup1D::DataLookup1D(const MatrixLookup&\n"
42         << "                           const size_t, const bool)...";
43  classifier::DataLookup1D v1(m1,1, true);
44  if (v1.size()!=m1.columns() || v1(0)!=m1(1,0) || 
45      v1(1)!=m1(1,1) ) {
46    ok =false;
47    *error << "\nERROR" << std::endl;
48    *error << "size: " << v1.size() << " expected " << m1.columns() << "\n" 
49           << "v1(0): " << v1(0) << " expected " << m1(1,0) << "\n"
50           << "v1(1): " << v1(1) << " expected " << m1(1,1) 
51           << std::endl;
52  }
53  else
54    *error << "Ok" << std::endl;
55
56  *error << "DataLookup1D::DataLookup1D(const MatrixLookup&\n"
57         << "                           const size_t, const bool false)...";
58  classifier::DataLookup1D v2(m1,1,false);
59  if (v2.size()!=m1.rows() || v2(0)!=m1(0,1) || v2(1)!=m1(1,1) ) {
60    ok =false;
61    *error << "\nERROR\n"
62           << "size: " << v2.size() << " expected " << m1.rows() << "\n" 
63           << "v2(0): " << v2(0) << " expected " << m1(0,1) << "\n"
64           << "v2(1): " << v2(1) << " expected " << m1(1,1) 
65           << std::endl;
66  }
67  else
68    *error << "Ok" << std::endl;
69
70  *error << "DataLookup1D::DataLookup1D(const DataLookup1D&)...";
71  classifier::DataLookup1D v3(v2);
72  if (v3.size()!=v2.size() || v3(0)!=v2(0) || v3(1)!=v2(1) ) {
73    ok =false;
74    *error << "\nERROR\n"
75           << "size: " << v3.size() << " expected " << v2.size() << "\n" 
76           << "v2(0): " << v3(0) << " expected " << v2(0) << "\n"
77           << "v2(1): " << v3(1) << " expected " <<  v2(1)
78           << std::endl;
79  }
80  else
81    *error << "Ok" << std::endl;
82
83  *error << "DataLookup1D::DataLookup1D(const size_t, const double)...";
84  classifier::DataLookup1D v4(12,3);
85  if (v4.size()!=12 || v4(10)!=3 ) {
86    ok =false;
87    *error << "\nERROR\n"
88           << "size: " << v4.size() << " expected " << 12 << "\n" 
89           << "v2(0): " << v4(10) << " expected " << 3 
90           << std::endl;
91  }
92  else
93    *error << "Ok" << std::endl;
94
95  if (ok)
96    *error << "Ok." << std::endl;
97  if (error!=&std::cerr)
98    delete error;
99  return (ok ? 0 : -1);
100}
101
102gslapi::matrix matrix(size_t n)
103{
104  gslapi::matrix res(n,n);
105  for (size_t i=0;i<n;i++)
106    for (size_t j=0;j<n;j++)
107      res(i,j)=10*i+j;
108  return res;
109}
110
Note: See TracBrowser for help on using the repository browser.