1 # -*- coding: utf-8 -*-
4 from PMML import PMMLlib, kANN, kLR
9 from exceptions import RuntimeError
13 class PMMLBasicsTest(unittest.TestCase):
16 pmmlRootDir = os.getenv("YACS_ROOT_DIR");
17 self.resourcesDir = os.path.join(pmmlRootDir,"share","salome","resources","pmml");
18 self.resourcesDir += os.sep ;
19 self.tmpDir = "/tmp/";
20 self.tmpDir += os.environ['LOGNAME']; # ("USER");
21 self.tmpDir += "/PmmlUnitTest/";
22 if ( not os.path.exists(self.tmpDir) ):
23 os.mkdir(self.tmpDir);
28 if ( os.path.exists(self.tmpDir) ):
29 shutil.rmtree(self.tmpDir);
33 def testExportPythonNeuralNet(self):
34 pmmlFile = self.resourcesDir + "ann_model.pmml";
36 exportPyScript = self.tmpDir + "swigTestExportPythonNeuralNet.py";
37 refPyFilename = self.resourcesDir + "unittest_ref_ann_model.py";
38 refLines = file(refPyFilename).readlines();
40 p = PMMLlib( pmmlFile );
41 p.SetCurrentModel( model, kANN );
42 p.ExportPython( exportPyScript, "myTestFunc",
43 "File used by unit test\n PMMLBasicsTest1::testExportNeuralNetworkPython" );
44 myLines = file(exportPyScript).readlines();
45 self.assertEqual( len(myLines), len(refLines) );
46 for (i,line) in enumerate(myLines):
47 self.assertEqual( line, refLines[i] );
51 def testExportPythonRegression(self):
52 pmmlFile = self.resourcesDir + "lr_model.pmml";
53 model = "Modeler[LinearRegression]Tds[steamplant]Predictor[x6:x8:x6x8:x6x6x8]Target[x1]";
54 exportPyScript = self.tmpDir + "swigTestExportPythonRegression.py";
55 refPyFilename = self.resourcesDir + "unittest_ref_lr_model.py";
56 refLines = file(refPyFilename).readlines();
58 p = PMMLlib( pmmlFile );
59 p.SetCurrentModel( model, kLR );
60 p.ExportPython( exportPyScript, "myTestFunc",
61 "File used by unit test\n PMMLBasicsTest1::testExportLinearRegressionPython" );
62 myLines = file(exportPyScript).readlines();
63 self.assertEqual( len(myLines), len(refLines) );
64 for (i,line) in enumerate(myLines):
65 self.assertEqual( line, refLines[i] );
69 def testPmmlFileNotReadable(self):
70 self.assertRaises( RuntimeError, PMMLlib, "0.mml" );
73 def testPmmlFileNotReadable(self):
74 pmmlFile = self.resourcesDir + "ann_model.pmml";
76 p = PMMLlib(pmmlFile);
77 self.assertRaises( RuntimeError, p.SetCurrentModel, model, kLR );
80 def testPmmlFileNotWritable(self):
82 self.assertRaises( RuntimeError, p.Write );