00001 #include "Reference.h" 00002 00003 #define BOOST_TEST_MODULE MertReference 00004 #include <boost/test/unit_test.hpp> 00005 00006 using namespace MosesTuning; 00007 00008 BOOST_AUTO_TEST_CASE(refernece_count) 00009 { 00010 Reference ref; 00011 BOOST_CHECK(ref.get_counts() != NULL); 00012 } 00013 00014 BOOST_AUTO_TEST_CASE(refernece_length_iterator) 00015 { 00016 Reference ref; 00017 ref.push_back(4); 00018 ref.push_back(2); 00019 BOOST_REQUIRE(ref.num_references() == 2); 00020 00021 Reference::iterator it = ref.begin(); 00022 BOOST_CHECK_EQUAL(*it, 4); 00023 ++it; 00024 BOOST_CHECK_EQUAL(*it, 2); 00025 ++it; 00026 BOOST_CHECK(it == ref.end()); 00027 } 00028 00029 BOOST_AUTO_TEST_CASE(refernece_length_average) 00030 { 00031 { 00032 Reference ref; 00033 ref.push_back(4); 00034 ref.push_back(1); 00035 BOOST_CHECK_EQUAL(2, ref.CalcAverage()); 00036 } 00037 00038 { 00039 Reference ref; 00040 ref.push_back(4); 00041 ref.push_back(3); 00042 BOOST_CHECK_EQUAL(3, ref.CalcAverage()); 00043 } 00044 00045 { 00046 Reference ref; 00047 ref.push_back(4); 00048 ref.push_back(3); 00049 ref.push_back(4); 00050 ref.push_back(5); 00051 BOOST_CHECK_EQUAL(4, ref.CalcAverage()); 00052 } 00053 } 00054 00055 BOOST_AUTO_TEST_CASE(refernece_length_closest) 00056 { 00057 { 00058 Reference ref; 00059 ref.push_back(4); 00060 ref.push_back(1); 00061 BOOST_REQUIRE(ref.num_references() == 2); 00062 00063 BOOST_CHECK_EQUAL(1, ref.CalcClosest(2)); 00064 BOOST_CHECK_EQUAL(1, ref.CalcClosest(1)); 00065 BOOST_CHECK_EQUAL(4, ref.CalcClosest(3)); 00066 BOOST_CHECK_EQUAL(4, ref.CalcClosest(4)); 00067 BOOST_CHECK_EQUAL(4, ref.CalcClosest(5)); 00068 } 00069 00070 { 00071 Reference ref; 00072 ref.push_back(4); 00073 ref.push_back(3); 00074 BOOST_REQUIRE(ref.num_references() == 2); 00075 00076 BOOST_CHECK_EQUAL(3, ref.CalcClosest(1)); 00077 BOOST_CHECK_EQUAL(3, ref.CalcClosest(2)); 00078 BOOST_CHECK_EQUAL(3, ref.CalcClosest(3)); 00079 BOOST_CHECK_EQUAL(4, ref.CalcClosest(4)); 00080 BOOST_CHECK_EQUAL(4, ref.CalcClosest(5)); 00081 } 00082 00083 { 00084 Reference ref; 00085 ref.push_back(4); 00086 ref.push_back(3); 00087 ref.push_back(4); 00088 ref.push_back(5); 00089 BOOST_REQUIRE(ref.num_references() == 4); 00090 00091 BOOST_CHECK_EQUAL(3, ref.CalcClosest(1)); 00092 BOOST_CHECK_EQUAL(3, ref.CalcClosest(2)); 00093 BOOST_CHECK_EQUAL(3, ref.CalcClosest(3)); 00094 BOOST_CHECK_EQUAL(4, ref.CalcClosest(4)); 00095 BOOST_CHECK_EQUAL(5, ref.CalcClosest(5)); 00096 } 00097 } 00098 00099 BOOST_AUTO_TEST_CASE(refernece_length_shortest) 00100 { 00101 { 00102 Reference ref; 00103 ref.push_back(4); 00104 ref.push_back(1); 00105 BOOST_CHECK_EQUAL(1, ref.CalcShortest()); 00106 } 00107 00108 { 00109 Reference ref; 00110 ref.push_back(4); 00111 ref.push_back(3); 00112 BOOST_CHECK_EQUAL(3, ref.CalcShortest()); 00113 } 00114 00115 { 00116 Reference ref; 00117 ref.push_back(4); 00118 ref.push_back(3); 00119 ref.push_back(4); 00120 ref.push_back(5); 00121 BOOST_CHECK_EQUAL(3, ref.CalcShortest()); 00122 } 00123 }