PairDistanceTest.h

Go to the documentation of this file.
00001 
00002 // Contents: 
00003 //           
00004 // Principal Author: Copyright (2005) Alexei Miasnikov 
00005 //
00006 // Status:
00007 //
00008 // Revision History:
00009 //
00010 // 
00011 
00012 #include "Word.h"
00013 #include "RanlibCPP.h"
00014 
00015 
00016 #ifndef PAIR_DIST_TEST_H
00017 #define PAIR_DIST_TEST_H
00018 
00019 #include "errormsgs.h"
00020 #include "SimilarityMeasures.h"
00021 
00022 #include <strstream>
00023 #include <vector>
00024 #include <algorithm>
00025 #include <sstream>
00026 
00028 //
00029 //
00030 //  PairGenerators
00031 //
00032 //
00034 
00036 class PairGenerator
00037 {
00038 public:
00040   virtual pair<Word,Word> getTruePair() = 0;
00042   virtual pair<Word,Word> getFalsePair() = 0;
00043 };
00044 
00045 
00046 
00048 class RandomPairGenerator : public PairGenerator
00049 {
00050 public:
00052 
00056   RandomPairGenerator(int N, int len ):
00057     nGens( N ),
00058     Len( len ) {}
00059   
00061   pair<Word,Word> getTruePair(){
00062     pair <Word,Word> p;
00063     p.first = Word::randomWord( nGens,Len );
00064     p.second = Word::randomWord( nGens,Len ); 
00065 
00066     return p;
00067   }
00068 
00070 
00075   pair<Word,Word> getFalsePair(){
00076     pair <Word,Word> p;
00077     p.first = Word::randomWord( nGens,Len );
00078     p.second = p.first; //-p.first*Word::randomWord( nGens,Len )*p.first; 
00079 
00080     return p;
00081 
00082   }
00083 private:
00084   int nGens;
00085   int Len;
00086 };
00087 
00089 //
00090 //
00091 //  TEST ON THE SIMILARITY OF PAIRS
00092 //
00093 //
00095 
00097 class PairDistanceSimilarityTest
00098 {
00099 public:
00101   PairDistanceSimilarityTest( int n,PairGenerator* g, StringSimilarityMeasure* sm) : 
00102     sampleSize( n ),
00103     measureDistr( n ),
00104     theGenerator( g ),
00105     theSimilarity( sm ){}
00106   
00107   void   estimateTrueDistribution();
00108   double testTruePair();
00109   double testFalsePair();
00110   
00111   double testPair(const pair<Word,Word>& p);
00112   
00113 private:
00114   // Vector of measure values
00115   vector<double> measureDistr;
00116   StringSimilarityMeasure* theSimilarity;
00117 
00118   int sampleSize;
00119   PairGenerator* theGenerator;
00120 };
00121 
00122 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Mon Sep 26 18:43:45 2011 for CRyptography And Groups (CRAG) by  doxygen 1.6.1