linpershey's picture
Add 'pm4py/' from commit '80970016c5e1e79af7c37df0dd88e17587fe7bcf'
b4ba3ec
import os
import unittest
import importlib.util
from pm4py.algo.organizational_mining.sna import algorithm as sna_alg, util as sna_util, util
from pm4py.objects.log.importer.xes import importer as xes_importer
from pm4py.util import constants, pandas_utils
from pm4py.objects.log.util import dataframe_utils
class SnaTests(unittest.TestCase):
def test_1(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("..", "tests", "input_data", "running-example.xes"))
hw_values = sna_alg.apply(log, variant=sna_alg.Variants.HANDOVER_LOG)
wt_values = sna_alg.apply(log, variant=sna_alg.Variants.WORKING_TOGETHER_LOG)
sub_values = sna_alg.apply(log, variant=sna_alg.Variants.SUBCONTRACTING_LOG)
ja_values = sna_alg.apply(log, variant=sna_alg.Variants.JOINTACTIVITIES_LOG)
def test_pandas(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 = pandas_utils.read_csv(os.path.join("..", "tests", "input_data", "running-example.csv"))
log = dataframe_utils.convert_timestamp_columns_in_df(log, timest_format=constants.DEFAULT_TIMESTAMP_PARSE_FORMAT)
hw_values = sna_alg.apply(log, variant=sna_alg.Variants.HANDOVER_PANDAS)
wt_values = sna_alg.apply(log, variant=sna_alg.Variants.WORKING_TOGETHER_PANDAS)
sub_values = sna_alg.apply(log, variant=sna_alg.Variants.SUBCONTRACTING_PANDAS)
def test_log_orgmining_local_attr(self):
from pm4py.algo.organizational_mining.local_diagnostics import algorithm
log = xes_importer.apply(os.path.join("input_data", "receipt.xes"))
algorithm.apply_from_group_attribute(log)
def test_log_orgmining_local_clustering(self):
if importlib.util.find_spec("sklearn"):
from pm4py.algo.organizational_mining.local_diagnostics import algorithm
from pm4py.algo.organizational_mining.sna.variants.log import jointactivities
log = xes_importer.apply(os.path.join("input_data", "receipt.xes"))
ja = jointactivities.apply(log)
clustering = util.cluster_affinity_propagation(ja)
algorithm.apply_from_clustering_or_roles(log, clustering)
def test_log_orgmining_local_roles(self):
from pm4py.algo.organizational_mining.local_diagnostics import algorithm
from pm4py.algo.organizational_mining.roles import algorithm as roles_detection
log = xes_importer.apply(os.path.join("input_data", "receipt.xes"))
roles = roles_detection.apply(log)
algorithm.apply_from_clustering_or_roles(log, roles)
def test_sna_clustering(self):
if importlib.util.find_spec("sklearn"):
log = xes_importer.apply(os.path.join("..", "tests", "input_data", "running-example.xes"))
hw_values = sna_alg.apply(log, variant=sna_alg.Variants.HANDOVER_LOG)
clusters = sna_util.cluster_affinity_propagation(hw_values)
def test_res_profiles_log(self):
from pm4py.algo.organizational_mining.resource_profiles import algorithm
log = xes_importer.apply(os.path.join("..", "tests", "input_data", "running-example.xes"))
algorithm.distinct_activities(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Sara")
algorithm.activity_frequency(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Sara", "decide")
algorithm.activity_completions(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Sara")
algorithm.case_completions(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Pete")
algorithm.fraction_case_completions(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Pete")
algorithm.average_workload(log, "2010-12-30 00:00:00", "2011-01-15 00:00:00", "Mike")
algorithm.multitasking(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Mike")
algorithm.average_duration_activity(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Sue",
"examine thoroughly")
algorithm.average_case_duration(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Sue")
algorithm.interaction_two_resources(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Mike", "Pete")
algorithm.social_position(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Sue")
def test_res_profiles_df(self):
from pm4py.algo.organizational_mining.resource_profiles import algorithm
log = pandas_utils.read_csv(os.path.join("..", "tests", "input_data", "running-example.csv"))
log = dataframe_utils.convert_timestamp_columns_in_df(log, timest_format=constants.DEFAULT_TIMESTAMP_PARSE_FORMAT)
algorithm.distinct_activities(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Sara")
algorithm.activity_frequency(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Sara", "decide")
algorithm.activity_completions(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Sara")
algorithm.case_completions(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Pete")
algorithm.fraction_case_completions(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Pete")
algorithm.average_workload(log, "2010-12-30 00:00:00", "2011-01-15 00:00:00", "Mike")
algorithm.multitasking(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Mike")
algorithm.average_duration_activity(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Sue",
"examine thoroughly")
algorithm.average_case_duration(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Sue")
algorithm.interaction_two_resources(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Mike", "Pete")
algorithm.social_position(log, "2010-12-30 00:00:00", "2011-01-25 00:00:00", "Sue")
if __name__ == "__main__":
unittest.main()