CoolFace
Apppublic

linpershey/process_mining

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
main_fac_test.py198 linesDownload Raw Back to tests
1import os2import unittest3 4from pm4py.algo.conformance.alignments.petri_net import algorithm as align_alg5from pm4py.algo.conformance.tokenreplay import algorithm as tr_alg6from pm4py.algo.discovery.alpha import algorithm as alpha_miner7from pm4py.algo.discovery.dfg import algorithm as dfg_mining8from pm4py.algo.discovery.heuristics import algorithm as heuristics_miner9from pm4py.algo.discovery.inductive import algorithm as inductive_miner10from pm4py.algo.discovery.transition_system import algorithm as ts_disc11from pm4py.algo.evaluation import algorithm as eval_alg12from pm4py.algo.evaluation.generalization import algorithm as generalization13from pm4py.algo.evaluation.precision import algorithm as precision_evaluator14from pm4py.algo.evaluation.replay_fitness import algorithm as rp_fit15from pm4py.algo.evaluation.simplicity import algorithm as simplicity16from pm4py.objects.conversion.log import converter as log_conversion17from pm4py.objects.log.exporter.xes import exporter as xes_exporter18from pm4py.objects.log.importer.xes import importer as xes_importer19from pm4py.objects.log.util import dataframe_utils20from pm4py.util import constants, pandas_utils21from pm4py.objects.conversion.process_tree import converter as process_tree_converter22 23 24class MainFactoriesTest(unittest.TestCase):25    def test_nonstandard_exporter(self):26        log = xes_importer.apply(os.path.join("input_data", "running-example.xes"))27        xes_exporter.apply(log, os.path.join("test_output_data", "running-example.xes"),28                           variant=xes_exporter.Variants.LINE_BY_LINE)29        os.remove(os.path.join("test_output_data", "running-example.xes"))30 31    def test_alphaminer_log(self):32        log = xes_importer.apply(os.path.join("input_data", "running-example.xes"))33        net, im, fm = alpha_miner.apply(log)34        aligned_traces_tr = tr_alg.apply(log, net, im, fm)35        aligned_traces_alignments = align_alg.apply(log, net, im, fm)36        evaluation = eval_alg.apply(log, net, im, fm)37        fitness = rp_fit.apply(log, net, im, fm)38        precision = precision_evaluator.apply(log, net, im, fm)39        gen = generalization.apply(log, net, im, fm)40        sim = simplicity.apply(net)41 42    def test_memory_efficient_iterparse(self):43        log = xes_importer.apply(os.path.join("input_data", "running-example.xes"),44                                 variant=xes_importer.Variants.ITERPARSE_MEM_COMPRESSED)45 46    def test_alphaminer_stream(self):47        df = pandas_utils.read_csv(os.path.join("input_data", "running-example.csv"))48        df = dataframe_utils.convert_timestamp_columns_in_df(df, timest_format=constants.DEFAULT_TIMESTAMP_PARSE_FORMAT)49        stream = log_conversion.apply(df, variant=log_conversion.TO_EVENT_STREAM)50        net, im, fm = alpha_miner.apply(stream)51        aligned_traces_tr = tr_alg.apply(stream, net, im, fm)52        aligned_traces_alignments = align_alg.apply(stream, net, im, fm)53        evaluation = eval_alg.apply(stream, net, im, fm)54        fitness = rp_fit.apply(stream, net, im, fm)55        precision = precision_evaluator.apply(stream, net, im, fm)56        gen = generalization.apply(stream, net, im, fm)57        sim = simplicity.apply(net)58 59    def test_alphaminer_df(self):60        log = pandas_utils.read_csv(os.path.join("input_data", "running-example.csv"))61        log = dataframe_utils.convert_timestamp_columns_in_df(log, timest_format=constants.DEFAULT_TIMESTAMP_PARSE_FORMAT)62        net, im, fm = alpha_miner.apply(log)63        aligned_traces_tr = tr_alg.apply(log, net, im, fm)64        aligned_traces_alignments = align_alg.apply(log, net, im, fm)65        evaluation = eval_alg.apply(log, net, im, fm)66        fitness = rp_fit.apply(log, net, im, fm)67        precision = precision_evaluator.apply(log, net, im, fm)68        gen = generalization.apply(log, net, im, fm)69        sim = simplicity.apply(net)70 71    def test_inductiveminer_log(self):72        log = xes_importer.apply(os.path.join("input_data", "running-example.xes"))73        process_tree = inductive_miner.apply(log)74        net, im, fm = process_tree_converter.apply(process_tree)75        aligned_traces_tr = tr_alg.apply(log, net, im, fm)76        aligned_traces_alignments = align_alg.apply(log, net, im, fm)77        evaluation = eval_alg.apply(log, net, im, fm)78        fitness = rp_fit.apply(log, net, im, fm)79        precision = precision_evaluator.apply(log, net, im, fm)80        gen = generalization.apply(log, net, im, fm)81        sim = simplicity.apply(net)82 83    def test_inductiveminer_df(self):84        log = pandas_utils.read_csv(os.path.join("input_data", "running-example.csv"))85        log = dataframe_utils.convert_timestamp_columns_in_df(log, timest_format=constants.DEFAULT_TIMESTAMP_PARSE_FORMAT)86        process_tree = inductive_miner.apply(log)87        net, im, fm = process_tree_converter.apply(process_tree)88        aligned_traces_tr = tr_alg.apply(log, net, im, fm)89        aligned_traces_alignments = align_alg.apply(log, net, im, fm)90        evaluation = eval_alg.apply(log, net, im, fm)91        fitness = rp_fit.apply(log, net, im, fm)92        precision = precision_evaluator.apply(log, net, im, fm)93        gen = generalization.apply(log, net, im, fm)94        sim = simplicity.apply(net)95 96    def test_heu_log(self):97        log = xes_importer.apply(os.path.join("input_data", "running-example.xes"))98        net, im, fm = heuristics_miner.apply(log)99        aligned_traces_tr = tr_alg.apply(log, net, im, fm)100        aligned_traces_alignments = align_alg.apply(log, net, im, fm)101        evaluation = eval_alg.apply(log, net, im, fm)102        fitness = rp_fit.apply(log, net, im, fm)103        precision = precision_evaluator.apply(log, net, im, fm)104        gen = generalization.apply(log, net, im, fm)105        sim = simplicity.apply(net)106 107    def test_heu_stream(self):108        df = pandas_utils.read_csv(os.path.join("input_data", "running-example.csv"))109        df = dataframe_utils.convert_timestamp_columns_in_df(df, timest_format=constants.DEFAULT_TIMESTAMP_PARSE_FORMAT)110        stream = log_conversion.apply(df, variant=log_conversion.TO_EVENT_STREAM)111        net, im, fm = heuristics_miner.apply(stream)112        aligned_traces_tr = tr_alg.apply(stream, net, im, fm)113        aligned_traces_alignments = align_alg.apply(stream, net, im, fm)114        evaluation = eval_alg.apply(stream, net, im, fm)115        fitness = rp_fit.apply(stream, net, im, fm)116        precision = precision_evaluator.apply(stream, net, im, fm)117        gen = generalization.apply(stream, net, im, fm)118        sim = simplicity.apply(net)119 120    def test_heu_df(self):121        log = pandas_utils.read_csv(os.path.join("input_data", "running-example.csv"))122        log = dataframe_utils.convert_timestamp_columns_in_df(log, timest_format=constants.DEFAULT_TIMESTAMP_PARSE_FORMAT)123        net, im, fm = heuristics_miner.apply(log)124        aligned_traces_tr = tr_alg.apply(log, net, im, fm)125        aligned_traces_alignments = align_alg.apply(log, net, im, fm)126        evaluation = eval_alg.apply(log, net, im, fm)127        fitness = rp_fit.apply(log, net, im, fm)128        precision = precision_evaluator.apply(log, net, im, fm)129        gen = generalization.apply(log, net, im, fm)130        sim = simplicity.apply(net)131 132    def test_dfg_log(self):133        log = xes_importer.apply(os.path.join("input_data", "running-example.xes"))134        dfg = dfg_mining.apply(log)135 136    def test_dfg_stream(self):137        df = pandas_utils.read_csv(os.path.join("input_data", "running-example.csv"))138        df = dataframe_utils.convert_timestamp_columns_in_df(df, timest_format=constants.DEFAULT_TIMESTAMP_PARSE_FORMAT)139        stream = log_conversion.apply(df, variant=log_conversion.TO_EVENT_STREAM)140        dfg = dfg_mining.apply(stream)141 142    def test_dfg_df(self):143        df = pandas_utils.read_csv(os.path.join("input_data", "running-example.csv"))144        df = dataframe_utils.convert_timestamp_columns_in_df(df, timest_format=constants.DEFAULT_TIMESTAMP_PARSE_FORMAT)145        dfg = dfg_mining.apply(df)146 147    def test_ts_log(self):148        log = xes_importer.apply(os.path.join("input_data", "running-example.xes"))149        ts = ts_disc.apply(log)150 151    def test_ts_stream(self):152        df = pandas_utils.read_csv(os.path.join("input_data", "running-example.csv"))153        df = dataframe_utils.convert_timestamp_columns_in_df(df, timest_format=constants.DEFAULT_TIMESTAMP_PARSE_FORMAT)154        stream = log_conversion.apply(df, variant=log_conversion.TO_EVENT_STREAM)155        ts = ts_disc.apply(stream)156 157    def test_ts_df(self):158        df = pandas_utils.read_csv(os.path.join("input_data", "running-example.csv"))159        df = dataframe_utils.convert_timestamp_columns_in_df(df, timest_format=constants.DEFAULT_TIMESTAMP_PARSE_FORMAT)160        ts = ts_disc.apply(df)161 162    def test_csvimp_xesexp(self):163        df = pandas_utils.read_csv(os.path.join("input_data", "running-example.csv"))164        df = dataframe_utils.convert_timestamp_columns_in_df(df, timest_format=constants.DEFAULT_TIMESTAMP_PARSE_FORMAT)165        log0 = log_conversion.apply(df, variant=log_conversion.TO_EVENT_STREAM)166        log = log_conversion.apply(log0, variant=log_conversion.TO_EVENT_LOG)167        stream = log_conversion.apply(log0, variant=log_conversion.TO_EVENT_STREAM)168        df = log_conversion.apply(log0, variant=log_conversion.TO_DATA_FRAME)169        xes_exporter.apply(log, "ru.xes")170        xes_exporter.apply(stream, "ru.xes")171        xes_exporter.apply(df, "ru.xes")172        os.remove('ru.xes')173 174    def test_xesimp_xesexp(self):175        log0 = xes_importer.apply(os.path.join("input_data", "running-example.xes"))176        log = log_conversion.apply(log0, variant=log_conversion.TO_EVENT_LOG)177        stream = log_conversion.apply(log0, variant=log_conversion.TO_EVENT_STREAM)178        df = log_conversion.apply(log0, variant=log_conversion.TO_DATA_FRAME)179        xes_exporter.apply(log, "ru.xes")180        xes_exporter.apply(stream, "ru.xes")181        xes_exporter.apply(df, "ru.xes")182        os.remove('ru.xes')183 184    def test_pdimp_xesexp(self):185        log0 = pandas_utils.read_csv(os.path.join("input_data", "running-example.csv"))186        log0 = dataframe_utils.convert_timestamp_columns_in_df(log0, timest_format=constants.DEFAULT_TIMESTAMP_PARSE_FORMAT)187        log = log_conversion.apply(log0, variant=log_conversion.TO_EVENT_LOG)188        stream = log_conversion.apply(log0, variant=log_conversion.TO_EVENT_STREAM)189        df = log_conversion.apply(log0, variant=log_conversion.TO_DATA_FRAME)190        xes_exporter.apply(log, "ru.xes")191        xes_exporter.apply(stream, "ru.xes")192        xes_exporter.apply(df, "ru.xes")193        os.remove('ru.xes')194 195 196if __name__ == "__main__":197    unittest.main()198