1 # -*- coding: utf-8 -*-
4 from PMML import PMMLlib, kANN, kLR
9 from exceptions import RuntimeError
13 class PMMLBasicsTest(unittest.TestCase):
16 self.resourcesDir = ".." + os.sep + "Test" + os.sep + "samples" + os.sep ;
17 self.tmpDir = os.sep + "tmp" + os.sep + os.environ['LOGNAME'] + os.sep ;
18 self.tmpDir += "PmmlUnitTest";
19 self.tmpDir += os.sep ;
20 if ( not os.path.exists(self.tmpDir) ):
21 os.mkdir(self.tmpDir);
26 if ( os.path.exists(self.tmpDir) ):
27 shutil.rmtree(self.tmpDir);
31 def testExportPythonNeuralNet(self):
32 pmmlFile = self.resourcesDir + "ann_model.pmml";
34 exportPyScript = self.tmpDir + "swigTestExportPythonNeuralNet.py";
35 refPyFilename = self.resourcesDir + "unittest_ref_ann_model.py";
36 refLines = file(refPyFilename).readlines();
38 p = PMMLlib( pmmlFile );
39 p.SetCurrentModel( model, kANN );
40 p.ExportPython( exportPyScript, "myTestFunc",
41 "File used by unit test\n PMMLBasicsTest1::testExportNeuralNetworkPython" );
42 myLines = file(exportPyScript).readlines();
43 self.assertEqual( len(myLines), len(refLines) );
44 for (i,line) in enumerate(myLines):
45 self.assertEqual( line, refLines[i] );
49 def testExportPythonRegression(self):
50 pmmlFile = self.resourcesDir + "lr_model.pmml";
51 model = "Modeler[LinearRegression]Tds[steamplant]Predictor[x6:x8:x6x8:x6x6x8]Target[x1]";
52 exportPyScript = self.tmpDir + "swigTestExportPythonRegression.py";
53 refPyFilename = self.resourcesDir + "unittest_ref_lr_model.py";
54 refLines = file(refPyFilename).readlines();
56 p = PMMLlib( pmmlFile );
57 p.SetCurrentModel( model, kLR );
58 p.ExportPython( exportPyScript, "myTestFunc",
59 "File used by unit test\n PMMLBasicsTest1::testExportLinearRegressionPython" );
60 myLines = file(exportPyScript).readlines();
61 self.assertEqual( len(myLines), len(refLines) );
62 for (i,line) in enumerate(myLines):
63 self.assertEqual( line, refLines[i] );
67 def testPmmlFileNotReadable(self):
68 self.assertRaises( RuntimeError, PMMLlib, "0.mml" );
71 def testPmmlFileNotReadable(self):
72 pmmlFile = self.resourcesDir + "ann_model.pmml";
74 p = PMMLlib(pmmlFile);
75 self.assertRaises( RuntimeError, p.SetCurrentModel, model, kLR );
78 def testPmmlFileNotWritable(self):
80 self.assertRaises( RuntimeError, p.Write );