00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <boost/test/unit_test.hpp>
00021
00022 #include "AlignmentInfo.h"
00023 #include "AlignmentInfoCollection.h"
00024
00025 using namespace Moses;
00026 using namespace std;
00027
00028 BOOST_AUTO_TEST_SUITE(alignment_info)
00029
00030 typedef pair<size_t,size_t> IndexPair;
00031 typedef set<pair<size_t,size_t> > IndexSet;
00032
00033 struct AlignmentInfoFixture {
00034 const AlignmentInfo* ai1;
00035 const AlignmentInfo* ai2;
00036 const AlignmentInfo* ai3;
00037
00038 AlignmentInfoFixture() {
00039 AlignmentInfoCollection& collection = AlignmentInfoCollection::Instance();
00040 IndexSet aligns1,aligns2,aligns3;
00041 aligns1.insert(IndexPair(1,1));
00042 aligns1.insert(IndexPair(2,1));
00043 aligns2.insert(IndexPair(1,1));
00044 aligns2.insert(IndexPair(2,1));
00045 aligns3.insert(IndexPair(1,2));
00046 aligns3.insert(IndexPair(2,1));
00047 ai1 = collection.Add(aligns1);
00048 ai2 = collection.Add(aligns2);
00049 ai3 = collection.Add(aligns3);
00050 }
00051
00052 };
00053
00054 BOOST_FIXTURE_TEST_CASE(comparator, AlignmentInfoFixture)
00055 {
00056 BOOST_CHECK(*ai1 == *ai2);
00057 BOOST_CHECK(*ai1 == *ai1);
00058 BOOST_CHECK(*ai2 == *ai2);
00059 BOOST_CHECK(*ai3 == *ai3);
00060 BOOST_CHECK(!(*ai2 == *ai3));
00061 BOOST_CHECK(!(*ai1 == *ai3));
00062 }
00063
00064 BOOST_FIXTURE_TEST_CASE(hasher, AlignmentInfoFixture)
00065 {
00066
00067 AlignmentInfoHasher hash;
00068 BOOST_CHECK_EQUAL(hash(*ai1), hash(*ai2));
00069 }
00070
00071 BOOST_AUTO_TEST_SUITE_END()