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 }