Skip to content

Commit

Permalink
Fixes testPMMLDocument() which passed only accidentally in previous r…
Browse files Browse the repository at this point in the history
…uns (apache#1109)

Test testPMMLDocument() used uninitialized variables from class. In previous runs it passed
 only accidentally, because the variables were initialized from previous tests in the class.
  • Loading branch information
baldimir authored and mariofusco committed Feb 28, 2017
1 parent 7fcfb91 commit 8b5348b
Showing 1 changed file with 20 additions and 40 deletions.
Expand Up @@ -47,18 +47,17 @@

public class ScorecardReasonCodeTest {

private static PMML pmmlDocument;
private static ScorecardCompiler scorecardCompiler;


@Test
public void testPMMLDocument() throws Exception {
Assert.assertNotNull(pmmlDocument);

final ScorecardCompiler scorecardCompiler = new ScorecardCompiler(INTERNAL_DECLARED_TYPES);
boolean compileResult = scorecardCompiler.compileFromExcel(PMMLDocumentTest.class.getResourceAsStream("/scoremodel_reasoncodes.xls"));
if (!compileResult) {
assertErrors(scorecardCompiler);
}
Assert.assertNotNull(scorecardCompiler.getPMMLDocument());
String pmml = scorecardCompiler.getPMML();
Assert.assertNotNull(pmml);
assertTrue(pmml.length() > 0);
//System.out.println(pmml);
}

@Test
Expand All @@ -75,15 +74,13 @@ public void testAbsenceOfReasonCodes() throws Exception {

@Test
public void testUseReasonCodes() throws Exception {
scorecardCompiler = new ScorecardCompiler( INTERNAL_DECLARED_TYPES );
final ScorecardCompiler scorecardCompiler = new ScorecardCompiler( INTERNAL_DECLARED_TYPES );
boolean compileResult = scorecardCompiler.compileFromExcel(PMMLDocumentTest.class.getResourceAsStream("/scoremodel_reasoncodes.xls"));
if (!compileResult) {
for(ScorecardError error : scorecardCompiler.getScorecardParseErrors()){
System.out.println("setup :"+error.getErrorLocation()+"->"+error.getErrorMessage());
}
assertErrors(scorecardCompiler);
}

pmmlDocument = scorecardCompiler.getPMMLDocument();
final PMML pmmlDocument = scorecardCompiler.getPMMLDocument();

for (Object serializable : pmmlDocument.getAssociationModelsAndBaselineModelsAndClusteringModels()){
if (serializable instanceof Scorecard){
Expand All @@ -96,15 +93,13 @@ public void testUseReasonCodes() throws Exception {

@Test
public void testReasonCodes() throws Exception {
scorecardCompiler = new ScorecardCompiler( INTERNAL_DECLARED_TYPES );
final ScorecardCompiler scorecardCompiler = new ScorecardCompiler( INTERNAL_DECLARED_TYPES );
boolean compileResult = scorecardCompiler.compileFromExcel(PMMLDocumentTest.class.getResourceAsStream("/scoremodel_reasoncodes.xls"));
if (!compileResult) {
for(ScorecardError error : scorecardCompiler.getScorecardParseErrors()){
System.out.println("setup :"+error.getErrorLocation()+"->"+error.getErrorMessage());
}
assertErrors(scorecardCompiler);
}

pmmlDocument = scorecardCompiler.getPMMLDocument();
final PMML pmmlDocument = scorecardCompiler.getPMMLDocument();

for (Object serializable : pmmlDocument.getAssociationModelsAndBaselineModelsAndClusteringModels()){
if (serializable instanceof Scorecard){
Expand All @@ -130,12 +125,10 @@ public void testBaselineScores() throws Exception {
ScorecardCompiler scorecardCompiler = new ScorecardCompiler( INTERNAL_DECLARED_TYPES );
boolean compileResult = scorecardCompiler.compileFromExcel(PMMLDocumentTest.class.getResourceAsStream("/scoremodel_reasoncodes.xls"));
if (!compileResult) {
for(ScorecardError error : scorecardCompiler.getScorecardParseErrors()){
System.out.println("setup :"+error.getErrorLocation()+"->"+error.getErrorMessage());
}
assertErrors(scorecardCompiler);
}

pmmlDocument = scorecardCompiler.getPMMLDocument();
final PMML pmmlDocument = scorecardCompiler.getPMMLDocument();

for (Object serializable : pmmlDocument.getAssociationModelsAndBaselineModelsAndClusteringModels()){
if (serializable instanceof Scorecard){
Expand Down Expand Up @@ -173,8 +166,6 @@ public void testMissingBaselineScores() throws Exception {
assertEquals("$D$30", scorecardCompiler.getScorecardParseErrors().get(2).getErrorLocation());
}



@Test
public void testReasonCodesCombinations() throws Exception {

Expand Down Expand Up @@ -272,11 +263,6 @@ public void testReasonCodesCombinations() throws Exception {
session.dispose();
}






@Test
public void testPointsAbove() throws Exception {
ScorecardCompiler scorecardCompiler = new ScorecardCompiler(INTERNAL_DECLARED_TYPES);
Expand All @@ -286,7 +272,6 @@ public void testPointsAbove() throws Exception {
String drl = scorecardCompiler.getDRL();
assertNotNull(drl);


KieServices ks = KieServices.Factory.get();
KieFileSystem kfs = ks.newKieFileSystem();
kfs.write( ks.getResources().newByteArrayResource( drl.getBytes() )
Expand Down Expand Up @@ -323,9 +308,6 @@ public void testPointsAbove() throws Exception {

session.dispose();




session = kbase.newKieSession();
scorecard = scorecardType.newInstance();
scorecardType.set( scorecard, "age", 0 );
Expand Down Expand Up @@ -385,9 +367,6 @@ public void testPointsAbove() throws Exception {

}




@Test
public void testPointsBelow() throws Exception {
ScorecardCompiler scorecardCompiler = new ScorecardCompiler(INTERNAL_DECLARED_TYPES);
Expand Down Expand Up @@ -432,7 +411,6 @@ public void testPointsBelow() throws Exception {

session.dispose();


session = kbase.newKieSession();
scorecard = scorecardType.newInstance();
scorecardType.set( scorecard, "age", 0 );
Expand All @@ -456,7 +434,6 @@ public void testPointsBelow() throws Exception {
assertEquals( -1.0, scorecardOutputType.get( scorecardOutput, "calculatedScore" ) );
assertEquals( "OCC01", scorecardOutputType.get( scorecardOutput, "reasonCode" ) );


session.dispose();

session = kbase.newKieSession();
Expand All @@ -481,14 +458,17 @@ public void testPointsBelow() throws Exception {
assertEquals( 14.0, reasonCodesMap.get( "VL001" ) );
assertEquals( -30.0, reasonCodesMap.get( "AGE03" ) );


scorecardOutput = session.getObjects( new ClassObjectFilter( scorecardOutputType.getFactClass() ) ).iterator().next();
assertEquals( 41.0, scorecardOutputType.get( scorecardOutput, "calculatedScore" ) );
assertEquals( "OCC02", scorecardOutputType.get( scorecardOutput, "reasonCode" ) );

session.dispose();
}



private void assertErrors(final ScorecardCompiler compiler) {
final StringBuilder errorBuilder = new StringBuilder();
compiler.getScorecardParseErrors().forEach((error) -> errorBuilder.append(error.getErrorLocation() + " -> " + error.getErrorMessage() + "\n"));
final String errors = errorBuilder.toString();
Assert.fail("There are compile errors: \n" + errors);
}
}

0 comments on commit 8b5348b

Please sign in to comment.