From b8212705e65db860bbb899b16fa0e7bc9e8536cf Mon Sep 17 00:00:00 2001 From: RncLsn Date: Thu, 28 May 2015 19:14:03 +0100 Subject: Bug-fix in tester. --- test/uk/ac/ox/cs/pagoda/query/CheckAnswers.java | 53 +++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 test/uk/ac/ox/cs/pagoda/query/CheckAnswers.java (limited to 'test/uk/ac/ox/cs/pagoda/query/CheckAnswers.java') diff --git a/test/uk/ac/ox/cs/pagoda/query/CheckAnswers.java b/test/uk/ac/ox/cs/pagoda/query/CheckAnswers.java new file mode 100644 index 0000000..f16d657 --- /dev/null +++ b/test/uk/ac/ox/cs/pagoda/query/CheckAnswers.java @@ -0,0 +1,53 @@ +package uk.ac.ox.cs.pagoda.query; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import org.testng.Assert; + +import java.io.BufferedReader; +import java.io.IOException; +import java.lang.reflect.Type; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Set; + +/** + * It provides auxiliary methods for checking answers. + */ +public class CheckAnswers { + + private CheckAnswers() { + } + + public static void assertSameAnswers(Path computedAnswersFile, Path givenAnswersFile) throws IOException { + BufferedReader computedReader = Files.newBufferedReader(computedAnswersFile); + BufferedReader givenReader = Files.newBufferedReader(givenAnswersFile); + + Gson gson = QueryRecord.GsonCreator.getInstance(); + + Type cqType = new TypeToken>() { + }.getType(); + Set computedAnswersRecords = gson.fromJson(computedReader, cqType); + Set givenAnswersRecords = gson.fromJson(givenReader, cqType); + + for(QueryRecord computedAnswersRecord : computedAnswersRecords) { + if(computedAnswersRecord.queryID == 8) continue; // DEBUG + Set givenAnswers = null; + for(QueryRecord givenAnswersRecord : givenAnswersRecords) { + if(givenAnswersRecord.queryID == computedAnswersRecord.queryID) { + givenAnswers = givenAnswersRecord.soundAnswerTuples; + break; + } + } + + Assert.assertNotNull(givenAnswers, "Missing given answer for query no. " + computedAnswersRecord.queryID); + + Set computedAnswers = computedAnswersRecord.soundAnswerTuples; + Assert.assertEquals(computedAnswers.size(), givenAnswers.size(), + "Different number sound answers for query " + computedAnswersRecord.queryID + "!" + + "Expected " + givenAnswers.size() + ", got " + computedAnswers.size()); + Assert.assertEquals(computedAnswers, givenAnswers, + "Different sound answers for query " + computedAnswersRecord.queryID + "!"); + } + } +} -- cgit v1.2.3