Spaces:
Sleeping
Sleeping
import os | |
import unittest | |
from pm4py.algo.discovery.inductive import algorithm as inductive_miner | |
from pm4py.algo.evaluation import algorithm as evaluation_alg | |
from pm4py.algo.evaluation.generalization import algorithm as generalization_alg | |
from pm4py.algo.evaluation.precision import algorithm as precision_alg | |
from pm4py.algo.evaluation.replay_fitness import algorithm as fitness_alg | |
from pm4py.algo.evaluation.simplicity import algorithm as simplicity_alg | |
from pm4py.objects.log.importer.xes import importer as xes_importer | |
from tests.constants import INPUT_DATA_DIR | |
from pm4py.objects.conversion.process_tree import converter as process_tree_converter | |
class ProcessModelEvaluationTests(unittest.TestCase): | |
def test_evaluation_pm1(self): | |
# to avoid static method warnings in tests, | |
# that by construction of the unittest package have to be expressed in such way | |
self.dummy_variable = "dummy_value" | |
log = xes_importer.apply(os.path.join(INPUT_DATA_DIR, "running-example.xes")) | |
process_tree = inductive_miner.apply(log) | |
net, marking, final_marking = process_tree_converter.apply(process_tree) | |
fitness = fitness_alg.apply(log, net, marking, final_marking) | |
precision = precision_alg.apply(log, net, marking, final_marking) | |
generalization = generalization_alg.apply(log, net, marking, final_marking) | |
simplicity = simplicity_alg.apply(net) | |
del fitness | |
del precision | |
del generalization | |
del simplicity | |
def test_evaluation_pm2(self): | |
# to avoid static method warnings in tests, | |
# that by construction of the unittest package have to be expressed in such way | |
self.dummy_variable = "dummy_value" | |
log = xes_importer.apply(os.path.join(INPUT_DATA_DIR, "running-example.xes")) | |
process_tree = inductive_miner.apply(log) | |
net, initial_marking, final_marking = process_tree_converter.apply(process_tree) | |
metrics = evaluation_alg.apply(log, net, initial_marking, final_marking) | |
del metrics | |
def test_simplicity_arc_degree(self): | |
import pm4py | |
net, im, fm = pm4py.read_pnml("input_data/running-example.pnml") | |
from pm4py.algo.evaluation.simplicity import algorithm as simplicity_evaluator | |
val = simplicity_evaluator.apply(net, variant=simplicity_evaluator.Variants.SIMPLICITY_ARC_DEGREE) | |
def test_simplicity_extended_cardoso(self): | |
import pm4py | |
net, im, fm = pm4py.read_pnml("input_data/running-example.pnml") | |
from pm4py.algo.evaluation.simplicity import algorithm as simplicity_evaluator | |
val = simplicity_evaluator.apply(net, variant=simplicity_evaluator.Variants.EXTENDED_CARDOSO) | |
def test_simplicity_extended_cyclomatic(self): | |
import pm4py | |
net, im, fm = pm4py.read_pnml("input_data/running-example.pnml") | |
from pm4py.algo.evaluation.simplicity import algorithm as simplicity_evaluator | |
val = simplicity_evaluator.apply(net, variant=simplicity_evaluator.Variants.EXTENDED_CYCLOMATIC) | |
if __name__ == "__main__": | |
unittest.main() | |