From 8eaf7a676085c1bb6757e54d1e5b0c94ef3eb533 Mon Sep 17 00:00:00 2001
From: Baptiste Bauvin <baptiste.bauvin.1@ulaval.ca>
Date: Sun, 5 Nov 2017 15:02:21 -0500
Subject: [PATCH] Adding compatbility tests for monoview classifiers

---
 .../MonoviewClassifiers/Adaboost.py           |  2 +-
 .../test_compatibility.py                     | 36 +++++++++++++++++++
 2 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100644 Code/Tests/Test_MonoviewClassifiers/test_compatibility.py

diff --git a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/Adaboost.py b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/Adaboost.py
index 2464619d..500a2b8d 100644
--- a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/Adaboost.py
+++ b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/Adaboost.py
@@ -17,7 +17,7 @@ __author__ = "Baptiste Bauvin"
 __status__ = "Prototype"  # Production, Development, Prototype
 
 
-def canProbas():
+def canProbas(a=10):
     return True
 
 
diff --git a/Code/Tests/Test_MonoviewClassifiers/test_compatibility.py b/Code/Tests/Test_MonoviewClassifiers/test_compatibility.py
new file mode 100644
index 00000000..46e31e55
--- /dev/null
+++ b/Code/Tests/Test_MonoviewClassifiers/test_compatibility.py
@@ -0,0 +1,36 @@
+import unittest
+import os
+
+from ...MonoMultiViewClassifiers import MonoviewClassifiers
+
+class Test_methods(unittest.TestCase):
+
+    def test_simple(self):
+        for fileName in os.listdir("Code/MonoMultiViewClassifiers/MonoviewClassifiers"):
+            if fileName[-3:] == ".py" and fileName != "__init__.py":
+                monoview_classifier_module = getattr(MonoviewClassifiers, fileName[:-3])
+                self.assertIn("canProbas", dir(monoview_classifier_module),
+                              fileName[:-3]+" must have canProbas method implemented")
+                self.assertIn("fit", dir(monoview_classifier_module),
+                              fileName[:-3]+" must have fit method implemented")
+                self.assertIn("paramsToSet", dir(monoview_classifier_module),
+                              fileName[:-3]+" must have paramsToSet method implemented")
+                self.assertIn("getKWARGS", dir(monoview_classifier_module),
+                              fileName[:-3]+" must have getKWARGS method implemented")
+                self.assertIn("randomizedSearch", dir(monoview_classifier_module),
+                              fileName[:-3]+" must have randomizedSearch method implemented")
+                self.assertIn("getConfig", dir(monoview_classifier_module),
+                              fileName[:-3]+" must have getConfig method implemented")
+                self.assertIn("getInterpret", dir(monoview_classifier_module),
+                              fileName[:-3]+" must have getInterpret method implemented")
+
+class Test_inputs(unittest.TestCase):
+
+    def test_canProbas(self):
+        for fileName in os.listdir("Code/MonoMultiViewClassifiers/MonoviewClassifiers"):
+            if fileName[-3:] == ".py" and fileName != "__init__.py":
+                monoview_classifier_module = getattr(MonoviewClassifiers, fileName[:-3])
+                res = monoview_classifier_module.canProbas()
+                self.assertEqual(type(res), bool, "canProbas must return a boolean")
+                with self.assertRaises(TypeError, msg="canProbas must have 0 args") as catcher:
+                    monoview_classifier_module.canProbas(35)
-- 
GitLab