Commit 566bac43 by Nilu

test analysis output

parent 028f1b0d
...@@ -36,9 +36,9 @@ public class TestAnalysisFP extends ORMProcessFormProcessor ...@@ -36,9 +36,9 @@ public class TestAnalysisFP extends ORMProcessFormProcessor
try try
{ {
loadData(testInput, process.getTransaction()); SingleValueTableModel model = loadData(testInput, process.getTransaction());
ExcelExporter.ExportAppender excelRenderer = getExportAppender(testInput.getCSV()); ExcelExporter.ExportAppender excelRenderer = getExportAppender(model);
excelRenderer.export(bos); excelRenderer.export(bos);
bytes = bos.toByteArray(); bytes = bos.toByteArray();
} }
...@@ -55,7 +55,7 @@ public class TestAnalysisFP extends ORMProcessFormProcessor ...@@ -55,7 +55,7 @@ public class TestAnalysisFP extends ORMProcessFormProcessor
}; };
} }
private static ExcelExporter.ExportAppender getExportAppender(BinaryContent file) throws IOException private static ExcelExporter.ExportAppender getExportAppender(SingleValueTableModel model) throws IOException
{ {
Properties props = new Properties(); Properties props = new Properties();
props.load(TestAnalysisFP.class.getClassLoader().getResourceAsStream("excel-styles.properties")); props.load(TestAnalysisFP.class.getClassLoader().getResourceAsStream("excel-styles.properties"));
...@@ -67,7 +67,7 @@ public class TestAnalysisFP extends ORMProcessFormProcessor ...@@ -67,7 +67,7 @@ public class TestAnalysisFP extends ORMProcessFormProcessor
ExcelExporter.ExportAppender exportAppender = new ExcelExporter(props).getAppender(); ExcelExporter.ExportAppender exportAppender = new ExcelExporter(props).getAppender();
exportAppender.appendTable("New Sheet", 1, getExcelContent(file)); exportAppender.appendTable("New Sheet", 0, model);
return exportAppender; return exportAppender;
} }
...@@ -81,8 +81,9 @@ public class TestAnalysisFP extends ORMProcessFormProcessor ...@@ -81,8 +81,9 @@ public class TestAnalysisFP extends ORMProcessFormProcessor
} }
public void loadData(TestInput testInput, ObjectTransaction objTran) public SingleValueTableModel loadData(TestInput testInput, ObjectTransaction objTran)
{ {
SingleValueTableModel model = null;
BufferedReader bReader = null; BufferedReader bReader = null;
String line = ""; String line = "";
String csvSeparator = ","; String csvSeparator = ",";
...@@ -128,7 +129,7 @@ public class TestAnalysisFP extends ORMProcessFormProcessor ...@@ -128,7 +129,7 @@ public class TestAnalysisFP extends ORMProcessFormProcessor
} }
} }
AnalysisEngine.analyseAnswers(answers.toArray(new Answer[0]), testInput.getLevel()); model = AnalysisEngine.analyseAnswers(answers.toArray(new Answer[0]), testInput.getLevel());
} }
catch (FileNotFoundException ex) catch (FileNotFoundException ex)
...@@ -161,6 +162,8 @@ public class TestAnalysisFP extends ORMProcessFormProcessor ...@@ -161,6 +162,8 @@ public class TestAnalysisFP extends ORMProcessFormProcessor
throw new NestedException(ex); throw new NestedException(ex);
} }
} }
return model;
} }
......
...@@ -11,11 +11,15 @@ import oneit.objstore.ObjectTransaction; ...@@ -11,11 +11,15 @@ import oneit.objstore.ObjectTransaction;
import oneit.objstore.rdbms.filters.EqualsFilter; import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.objstore.rdbms.filters.GreaterThanEqualFilter; import oneit.objstore.rdbms.filters.GreaterThanEqualFilter;
import oneit.objstore.rdbms.filters.LessThanEqualFilter; import oneit.objstore.rdbms.filters.LessThanEqualFilter;
import oneit.utils.MultiHashtable;
import oneit.utils.table.SingleValueTableModel;
import performa.orm.Answer; import performa.orm.Answer;
import performa.orm.Candidate;
import performa.orm.Factor; import performa.orm.Factor;
import performa.orm.FactorQuestionLink; import performa.orm.FactorQuestionLink;
import performa.orm.FactorScoreResult; import performa.orm.FactorScoreResult;
import performa.orm.Level; import performa.orm.Level;
import performa.orm.types.QuestionType;
/** /**
* *
...@@ -24,13 +28,26 @@ import performa.orm.Level; ...@@ -24,13 +28,26 @@ import performa.orm.Level;
public class AnalysisEngine public class AnalysisEngine
{ {
public static void analyseAnswers(Answer[] answers, Level level) public static SingleValueTableModel analyseAnswers(Answer[] answers, Level level)
{ {
SingleValueTableModel model = new SingleValueTableModel();
ObjectTransaction objTran = level.getTransaction(); ObjectTransaction objTran = level.getTransaction();
MultiHashtable<Candidate, Answer> answersByCandidate = new MultiHashtable<>();
answersByCandidate.groupValues(answers, Answer.pipesAnswer().toCandidate());
int index = 0;
for (Candidate candidate : answersByCandidate.keySet())
{
int rowNumber = 0;
int colNumber = ( index * 3 ) + 1;
Map<Factor, Integer> factorScoreMap = new HashMap<>(); Map<Factor, Integer> factorScoreMap = new HashMap<>();
for (Answer answer : answers) model.addCell(rowNumber++, colNumber, new SingleValueTableModel.CellModel(candidate.getFirstName(), ""));
for (Answer answer : answersByCandidate.getValuesForKey(candidate))
{ {
FactorQuestionLink[] links = FactorQuestionLink.SearchByAll() FactorQuestionLink[] links = FactorQuestionLink.SearchByAll()
.andQuestion(new EqualsFilter<>(answer.getQuestion())) .andQuestion(new EqualsFilter<>(answer.getQuestion()))
...@@ -47,14 +64,19 @@ public class AnalysisEngine ...@@ -47,14 +64,19 @@ public class AnalysisEngine
factorScore += factorScoreMap.get(factor); factorScore += factorScoreMap.get(factor);
} }
if(link.getReverseScore().equals("Yes")) if(link.getReverseScore())
{
if(answer.getQuestion().getSection().getQuestionType() == QuestionType.IPSATIVE)
{ {
// ipsative is stored in quest_hdr. bo not created yet
factorScore += (10 - answer.getAnswerNo()); factorScore += (10 - answer.getAnswerNo());
} }
else else
{ {
factorScore += (8 - answer.getAnswerNo());
}
}
else
{
factorScore += answer.getAnswerNo(); factorScore += answer.getAnswerNo();
} }
...@@ -67,6 +89,11 @@ public class AnalysisEngine ...@@ -67,6 +89,11 @@ public class AnalysisEngine
Factor factor = entrySet.getKey(); Factor factor = entrySet.getKey();
Integer factorScore = entrySet.getValue(); Integer factorScore = entrySet.getValue();
if(index == 0)
{
model.addCell(rowNumber, 0, new SingleValueTableModel.CellModel(factor.getDescription(), ""));
}
FactorScoreResult result = FactorScoreResult.SearchByFactorScore() FactorScoreResult result = FactorScoreResult.SearchByFactorScore()
.andFactor(new EqualsFilter<>(factor)) .andFactor(new EqualsFilter<>(factor))
.andLevel(new EqualsFilter<>(level)) .andLevel(new EqualsFilter<>(level))
...@@ -76,9 +103,18 @@ public class AnalysisEngine ...@@ -76,9 +103,18 @@ public class AnalysisEngine
int score = result != null ? result.getColorCode().getWeightage() : 0; int score = result != null ? result.getColorCode().getWeightage() : 0;
System.out.println("score :: " + score);
// TODO: calculate normalised score based on importance // TODO: calculate normalised score based on importance
model.addCell(rowNumber, colNumber, new SingleValueTableModel.CellModel(String.valueOf(score), ""));
model.addCell(rowNumber, colNumber + 1, new SingleValueTableModel.CellModel(result != null ? result.getColorCode().getDescription() : "", ""));
model.addCell(rowNumber++, colNumber + 2, new SingleValueTableModel.CellModel(result != null ? result.getNarrative().getGraphicNotes(): "", ""));
}
index++;
} }
return model;
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment