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