Ignore:
Timestamp:
Sep 25, 2007, 11:35:25 AM (16 years ago)
Author:
Markus Ringnér
Message:

Refs #245 #246 #247

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/vector_distance_test.cc

    r889 r890  
    11// $Id$
    22
     3#include "yat/classifier/DataLookupWeighted1D.h"
     4#include "yat/classifier/MatrixLookupWeighted.h"
    35#include "yat/statistics/euclidean_vector_distance.h"
    46#include "yat/statistics/pearson_vector_distance.h"
     7#include "yat/utility/matrix.h"
    58#include "yat/utility/vector.h"
    69
     
    2326      std::cout << "vector_distance_test -v : for printing extra information\n";
    2427  }
    25   *error << "testing distance" << std::endl;
     28  *error << "testing vector_distance" << std::endl;
    2629  bool ok = true;
    2730
     
    3134  b(2) = 1;
    3235
    33   *error << "testing Euclidean vector_distance" << std::endl;
     36  double tolerance=1e-4;
     37
    3438  double dist=statistics::vector_distance(a.begin(),a.end(),b.begin(),
    3539                                          statistics::euclidean_vector_distance_tag());
     40  if(fabs(dist-2.23607)>tolerance) {
     41    *error << "Error in unweighted Euclidean vector_distance: " << std::endl;
     42    ok=false;
     43  }
    3644
    37   *error << "Dist: " << dist << std::endl;
    38 
    39 
    40   *error << "testing Pearson vector_distance" << std::endl;
    4145  dist=statistics::vector_distance(a.begin(),a.end(),b.begin(),
    4246                                          statistics::pearson_vector_distance_tag());
    43   *error << "Dist: " << dist << std::endl;
     47  if(fabs(dist-1.5)>tolerance) {
     48    *error << "Error in unweighted Pearson vector_distance: " << std::endl;
     49    ok=false;
     50  }
    4451
     52 
     53  // Testing weighted versions
     54  utility::matrix m(2,3,1);
     55  m(0,1)=2;
     56  m(1,0)=0;
     57  m(1,1)=0;
     58  utility::matrix w(2,3,1);
     59  w(0,0)=0;
     60  classifier::MatrixLookupWeighted mw(m,w);
     61  classifier::DataLookupWeighted1D aw(mw,0,true);
     62  classifier::DataLookupWeighted1D bw(mw,1,true);
     63 
     64  dist=statistics::vector_distance(aw.begin(),aw.end(),bw.begin(),
     65                                          statistics::euclidean_vector_distance_tag());
     66 
     67  if(fabs(dist-2)>tolerance) {
     68    *error << "Error in weighted Euclidean vector_distance: " << std::endl;
     69    ok=false;
     70  }
     71
     72  dist=statistics::vector_distance(aw.begin(),aw.end(),bw.begin(),
     73                                          statistics::pearson_vector_distance_tag());
     74 
     75  if(fabs(dist-2)>tolerance) {
     76    *error << "Error in weighted Pearson vector_distance: " << std::endl;
     77    ok=false;
     78  }
    4579
    4680  if (error!=&std::cerr)
Note: See TracChangeset for help on using the changeset viewer.