linpershey/process_mining
0
1import inspect2import os3import sys4import unittest5import importlib.util6 7current_dir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))8parent_dir = os.path.dirname(current_dir)9sys.path.insert(0, parent_dir)10 11EXECUTE_TESTS = True12 13import pm4py14import numpy15import pandas16import networkx17 18pm4py.util.constants.SHOW_PROGRESS_BAR = False19pm4py.util.constants.SHOW_EVENT_LOG_DEPRECATION = False20pm4py.util.constants.SHOW_INTERNAL_WARNINGS = False21# pm4py.util.constants.DEFAULT_TIMESTAMP_PARSE_FORMAT = None22 23enabled_tests = ["SimplifiedInterfaceTest", "SimplifiedInterface2Test", "DocTests", "RoleDetectionTest",24 "PassedTimeTest", "Pm4pyImportPackageTest", "XesImportExportTest", "CsvImportExportTest",25 "OtherPartsTests", "AlphaMinerTest", "InductiveMinerTest", "InductiveMinerTreeTest",26 "AlignmentTest", "DfgTests", "SnaTests", "PetriImportExportTest", "BPMNTests", "ETCTest",27 "DiagnDfConfChecking", "ProcessModelEvaluationTests", "DecisionTreeTest", "GraphsForming",28 "HeuMinerTest", "MainFactoriesTest", "AlgorithmTest", "LogFilteringTest",29 "DataframePrefilteringTest", "StatisticsLogTest", "StatisticsDfTest", "TransitionSystemTest",30 "ImpExpFromString", "WoflanTest", "OcelFilteringTest", "OcelDiscoveryTest", "LlmTest"]31 32loader = unittest.TestLoader()33suite = unittest.TestSuite()34 35failed = 036 37if not importlib.util.find_spec("graphviz"):38 print("important! install 'grapviz' from pip")39 failed +=140 41if not importlib.util.find_spec("lxml"):42 print("important! install 'lxml' from pip")43 failed += 144 45if "SimplifiedInterfaceTest" in enabled_tests:46 try:47 from tests.simplified_interface import SimplifiedInterfaceTest48 suite.addTests(loader.loadTestsFromTestCase(SimplifiedInterfaceTest))49 except:50 print("SimplifiedInterfaceTest import failed!")51 failed += 152 53if "SimplifiedInterface2Test" in enabled_tests:54 try:55 from tests.simplified_interface_2 import SimplifiedInterface2Test56 suite.addTests(loader.loadTestsFromTestCase(SimplifiedInterface2Test))57 except:58 print("SimplifiedInterface2Test import failed!")59 failed += 160 61if "DocTests" in enabled_tests:62 try:63 from tests.doc_tests import DocTests64 suite.addTests(loader.loadTestsFromTestCase(DocTests))65 except:66 print("DocTests import failed!")67 failed += 168 69if "RoleDetectionTest" in enabled_tests:70 try:71 from tests.role_detection import RoleDetectionTest72 suite.addTests(loader.loadTestsFromTestCase(RoleDetectionTest))73 except:74 print("RoleDetectionTest import failed!")75 failed += 176 77if "PassedTimeTest" in enabled_tests:78 try:79 from tests.passed_time import PassedTimeTest80 suite.addTests(loader.loadTestsFromTestCase(PassedTimeTest))81 except:82 print("PassedTimeTest import failed!")83 failed += 184 85if "Pm4pyImportPackageTest" in enabled_tests:86 try:87 from tests.imp_everything import Pm4pyImportPackageTest88 suite.addTests(loader.loadTestsFromTestCase(Pm4pyImportPackageTest))89 except:90 print("Pm4pyImportPackageTest import failed!")91 failed += 192 93if "XesImportExportTest" in enabled_tests:94 try:95 from tests.xes_impexp_test import XesImportExportTest96 suite.addTests(loader.loadTestsFromTestCase(XesImportExportTest))97 except:98 print("XesImportExportTest import failed!")99 failed += 1100 101if "CsvImportExportTest" in enabled_tests:102 try:103 from tests.csv_impexp_test import CsvImportExportTest104 suite.addTests(loader.loadTestsFromTestCase(CsvImportExportTest))105 except:106 print("CsvImportExportTest import failed!")107 failed += 1108 109if "OtherPartsTests" in enabled_tests:110 try:111 from tests.other_tests import OtherPartsTests112 suite.addTests(loader.loadTestsFromTestCase(OtherPartsTests))113 except:114 print("OtherPartsTests import failed!")115 failed += 1116 117if "AlphaMinerTest" in enabled_tests:118 try:119 from tests.alpha_test import AlphaMinerTest120 suite.addTests(loader.loadTestsFromTestCase(AlphaMinerTest))121 except:122 print("AlphaMinerTest import failed!")123 failed += 1124 125if "InductiveMinerTest" in enabled_tests:126 try:127 from tests.inductive_test import InductiveMinerTest128 suite.addTests(loader.loadTestsFromTestCase(InductiveMinerTest))129 except:130 print("InductiveMinerTest import failed!")131 failed += 1132 133if "InductiveMinerTreeTest" in enabled_tests:134 try:135 from tests.inductive_tree_test import InductiveMinerTreeTest136 suite.addTests(loader.loadTestsFromTestCase(InductiveMinerTreeTest))137 except:138 print("InductiveMinerTreeTest import failed!")139 failed += 1140 141if "AlignmentTest" in enabled_tests:142 try:143 from tests.alignment_test import AlignmentTest144 suite.addTests(loader.loadTestsFromTestCase(AlignmentTest))145 except:146 print("AlignmentTest import failed!")147 failed += 1148 149if "DfgTests" in enabled_tests:150 try:151 from tests.dfg_tests import DfgTests152 suite.addTests(loader.loadTestsFromTestCase(DfgTests))153 except:154 print("DfgTests import failed!")155 failed += 1156 157if "SnaTests" in enabled_tests:158 try:159 from tests.sna_test import SnaTests160 suite.addTests(loader.loadTestsFromTestCase(SnaTests))161 except:162 print("SnaTests import failed!")163 failed += 1164 165if "PetriImportExportTest" in enabled_tests:166 try:167 from tests.petri_imp_exp_test import PetriImportExportTest168 suite.addTests(loader.loadTestsFromTestCase(PetriImportExportTest))169 except:170 print("PetriImportExportTest import failed!")171 failed += 1172 173if "BPMNTests" in enabled_tests:174 try:175 from tests.bpmn_tests import BPMNTests176 suite.addTests(loader.loadTestsFromTestCase(BPMNTests))177 except:178 print("BPMNTests import failed!")179 failed += 1180 181if "ETCTest" in enabled_tests:182 try:183 from tests.etc_tests import ETCTest184 suite.addTests(loader.loadTestsFromTestCase(ETCTest))185 except:186 print("ETCTest import failed!")187 failed += 1188 189if "DiagnDfConfChecking" in enabled_tests:190 try:191 from tests.diagn_df_conf_checking import DiagnDfConfChecking192 suite.addTests(loader.loadTestsFromTestCase(DiagnDfConfChecking))193 except:194 print("DiagnDfConfChecking import failed!")195 failed += 1196 197if "ProcessModelEvaluationTests" in enabled_tests:198 try:199 from tests.evaluation_tests import ProcessModelEvaluationTests200 suite.addTests(loader.loadTestsFromTestCase(ProcessModelEvaluationTests))201 except:202 print("ProcessModelEvaluationTests import failed!")203 failed += 1204 205if "DecisionTreeTest" in enabled_tests:206 try:207 from tests.dec_tree_test import DecisionTreeTest208 suite.addTests(loader.loadTestsFromTestCase(DecisionTreeTest))209 except:210 print("DecisionTreeTest import failed!")211 failed += 1212 213if "GraphsForming" in enabled_tests:214 try:215 from tests.graphs_forming import GraphsForming216 suite.addTests(loader.loadTestsFromTestCase(GraphsForming))217 except:218 print("GraphsForming import failed!")219 failed += 1220 221if "HeuMinerTest" in enabled_tests:222 try:223 from tests.heuminer_test import HeuMinerTest224 suite.addTests(loader.loadTestsFromTestCase(HeuMinerTest))225 except:226 print("HeuMinerTest import failed!")227 failed += 1228 229if "MainFactoriesTest" in enabled_tests:230 try:231 from tests.main_fac_test import MainFactoriesTest232 suite.addTests(loader.loadTestsFromTestCase(MainFactoriesTest))233 except:234 print("MainFactoriesTest import failed!")235 failed += 1236 237if "AlgorithmTest" in enabled_tests:238 try:239 from tests.algorithm_test import AlgorithmTest240 suite.addTests(loader.loadTestsFromTestCase(AlgorithmTest))241 except:242 print("AlgorithmTest import failed!")243 failed += 1244 245if "LogFilteringTest" in enabled_tests:246 try:247 from tests.filtering_log_test import LogFilteringTest248 suite.addTests(loader.loadTestsFromTestCase(LogFilteringTest))249 except:250 print("LogFilteringTest import failed!")251 failed += 1252 253if "DataframePrefilteringTest" in enabled_tests:254 try:255 from tests.filtering_pandas_test import DataframePrefilteringTest256 suite.addTests(loader.loadTestsFromTestCase(DataframePrefilteringTest))257 except:258 print("DataframePrefilteringTest import failed!")259 failed += 1260 261if "StatisticsLogTest" in enabled_tests:262 try:263 from tests.statistics_log_test import StatisticsLogTest264 suite.addTests(loader.loadTestsFromTestCase(StatisticsLogTest))265 except:266 print("StatisticsLogTest import failed!")267 failed += 1268 269if "StatisticsDfTest" in enabled_tests:270 try:271 from tests.statistics_df_test import StatisticsDfTest272 suite.addTests(loader.loadTestsFromTestCase(StatisticsDfTest))273 except:274 print("StatisticsDfTest import failed!")275 failed += 1276 277if "TransitionSystemTest" in enabled_tests:278 try:279 from tests.trans_syst_tests import TransitionSystemTest280 suite.addTests(loader.loadTestsFromTestCase(TransitionSystemTest))281 except:282 print("TransitionSystemTest import failed!")283 failed += 1284 285if "ImpExpFromString" in enabled_tests:286 try:287 from tests.imp_exp_from_string import ImpExpFromString288 suite.addTests(loader.loadTestsFromTestCase(ImpExpFromString))289 except:290 print("ImpExpFromString import failed!")291 failed += 1292 293if "WoflanTest" in enabled_tests:294 try:295 from tests.woflan_tests import WoflanTest296 suite.addTests(loader.loadTestsFromTestCase(WoflanTest))297 except:298 print("WoflanTest import failed!")299 failed += 1300 301if "OcelFilteringTest" in enabled_tests:302 try:303 from tests.ocel_filtering_test import OcelFilteringTest304 suite.addTests(loader.loadTestsFromTestCase(OcelFilteringTest))305 except:306 print("OcelFilteringTest import failed!")307 failed += 1308 309if "OcelDiscoveryTest" in enabled_tests:310 try:311 from tests.ocel_discovery_test import OcelDiscoveryTest312 suite.addTests(loader.loadTestsFromTestCase(OcelDiscoveryTest))313 except:314 print("OcelDiscoveryTest import failed!")315 failed += 1316 317if "LlmTest" in enabled_tests:318 try:319 from tests.llm_test import LlmTest320 suite.addTests(loader.loadTestsFromTestCase(LlmTest))321 except:322 print("LlmTest import failed!")323 failed += 1324 325 326if failed > 0:327 print("-- PRESS ENTER TO CONTINUE --")328 input()329 330 331def main():332 if EXECUTE_TESTS:333 runner = unittest.TextTestRunner()334 runner.run(suite)335 336 print("numpy version: "+str(numpy.__version__))337 print("pandas version: "+str(pandas.__version__))338 print("networkx version: "+str(networkx.__version__))339 340 if importlib.util.find_spec("scipy"):341 import scipy342 print("scipy version: "+str(scipy.__version__))343 344 if importlib.util.find_spec("lxml"):345 import lxml346 print("lxml version: "+str(lxml.__version__))347 348 if importlib.util.find_spec("matplotlib"):349 import matplotlib350 print("matplotlib version: "+str(matplotlib.__version__))351 352 if importlib.util.find_spec("sklearn"):353 import sklearn354 print("sklearn version: "+str(sklearn.__version__))355 356 print("pm4py version: "+str(pm4py.__version__))357 print("Python version: "+str(sys.version))358 359 360if __name__ == "__main__":361 main()362 