示例#1
0
 def test_bpmn_exporting(self):
     bpmn_graph = bpmn_importer.apply(
         os.path.join("input_data", "running-example.bpmn"))
     bpmn_exporter.apply(
         bpmn_graph, os.path.join("test_output_data",
                                  "running-example.bpmn"))
     os.remove(os.path.join("test_output_data", "running-example.bpmn"))
示例#2
0
 def test_bpmn_to_petri_net(self):
     log = pm4py.read_xes(os.path.join("input_data", "running-example.xes"))
     bpmn_graph = bpmn_importer.apply(
         os.path.join("input_data", "running-example.bpmn"))
     net, im, fm = bpmn_converter.apply(
         bpmn_graph, variant=bpmn_converter.Variants.TO_PETRI_NET)
     fitness_tbr = pm4py.fitness_token_based_replay(log, net, im, fm)
def execute_script():
    log = pm4py.read_xes(os.path.join("..", "tests", "input_data", "running-example.xes"))
    bpmn_graph = bpmn_importer.apply(os.path.join("..", "tests", "input_data", "running-example.bpmn"))
    net, im, fm = bpmn_converter.apply(bpmn_graph, variant=bpmn_converter.Variants.TO_PETRI_NET)
    precision_tbr = pm4py.precision_token_based_replay(log, net, im, fm)
    print("precision", precision_tbr)
    fitness_tbr = pm4py.precision_token_based_replay(log, net, im, fm)
    print("fitness", fitness_tbr)
    print(pm4py.check_soundness(net, im, fm))
示例#4
0
def read_bpmn(file_path):
    """
    Reads a BPMN from a .bpmn file

    Parameters
    ---------------
    file_path
        File path

    Returns
    ---------------
    bpmn_graph
        BPMN graph
    """
    from pm4py.objects.bpmn.importer import importer as bpmn_importer
    bpmn_graph = bpmn_importer.apply(file_path)
    return bpmn_graph
示例#5
0
        bpmn_output_path = bpmn_output_path.name
        log_path = os.path.join(LOGS_FOLDER, log_name)
        print("")
        print(log_path)
        log = pm4py.read_xes(log_path)
        fp_log = pm4py.algo.discovery.footprints.log.variants.entire_event_log.apply(
            log)
        net, im, fm = pm4py.discover_petri_net_heuristics(log)
        fitness0 = pm4py.evaluate_fitness_alignments(log, net, im, fm)
        precision0 = pm4py.evaluate_precision_alignments(log, net, im, fm)
        print("fitness 0", fitness0)
        print("precision 0", precision0)
        bpmn_graph = pm4py.objects.conversion.wf_net.variants.to_bpmn.apply(
            net, im, fm)
        bpmn_graph = layouter.apply(bpmn_graph)
        exporter.apply(bpmn_graph, bpmn_output_path)
        bpmn_graph = importer.apply(bpmn_output_path)
        bpmn_graph = layouter.apply(bpmn_graph)
        # gets the net back
        net, im, fm = pm4py.objects.conversion.bpmn.variants.to_petri_net.apply(
            bpmn_graph)
        gviz = pn_visualizer.apply(net, im, fm)
        pn_visualizer.view(gviz)
        fitness1 = pm4py.evaluate_fitness_alignments(log, net, im, fm)
        precision1 = pm4py.evaluate_precision_alignments(log, net, im, fm)
        print("fitness 1", fitness1, fitness0 == fitness1)
        print("precision 1", precision1, precision0 == precision1)
        if not (fitness0 == fitness1 and precision0 == precision1):
            print("ALERT")
            input()
示例#6
0
 def test_bpmn_importing_and_layouting(self):
     bpmn_graph = bpmn_importer.apply(os.path.join("input_data", "running-example.bpmn"))
     bpmn_graph = bpmn_layouter.apply(bpmn_graph)