UNPKG

pm4js

Version:

Process Mining for Javascript

82 lines (75 loc) 3.77 kB
require("../init.js"); var fs = require('fs'); const os = require('os'); test("DFG slider reviewing (activities)", () => { let data = fs.readFileSync('examples/input_data/reviewing.xes', {encoding: 'utf-8'}); let eventLog = XesImporter.apply(data); for (let trace of eventLog.traces) { for (let eve of trace.events) { eve.attributes["@@classifier"] = new Attribute(eve.attributes["concept:name"].value + "+" + eve.attributes["lifecycle:transition"].value); } } let frequencyDfg = FrequencyDfgDiscovery.apply(eventLog, "@@classifier"); let filteredDfg = DfgSliders.filterDfgOnPercActivities(frequencyDfg, 0.2); }); test("DFG slider reviewing (paths)", () => { let data = fs.readFileSync('examples/input_data/reviewing.xes', {encoding: 'utf-8'}); let eventLog = XesImporter.apply(data); for (let trace of eventLog.traces) { for (let eve of trace.events) { eve.attributes["@@classifier"] = new Attribute(eve.attributes["concept:name"].value + "+" + eve.attributes["lifecycle:transition"].value); } } let frequencyDfg = FrequencyDfgDiscovery.apply(eventLog, "@@classifier"); let filteredDfg = DfgSliders.filterDfgOnPercPaths(frequencyDfg, 0.2); }); test("DFG alignments reviewing", () => { let data = fs.readFileSync('examples/input_data/reviewing.xes', {encoding: 'utf-8'}); let eventLog = XesImporter.apply(data); for (let trace of eventLog.traces) { for (let eve of trace.events) { eve.attributes["@@classifier"] = new Attribute(eve.attributes["concept:name"].value + "+" + eve.attributes["lifecycle:transition"].value); } } let frequencyDfg = FrequencyDfgDiscovery.apply(eventLog, "@@classifier"); let alignedTraces = DfgAlignments.apply(eventLog, frequencyDfg, "@@classifier"); }); test("DFG slider reviewing (paths) + Capacity Maximization", () => { let data = fs.readFileSync('examples/input_data/reviewing.xes', {encoding: 'utf-8'}); let eventLog = XesImporter.apply(data); for (let trace of eventLog.traces) { for (let eve of trace.events) { eve.attributes["@@classifier"] = new Attribute(eve.attributes["concept:name"].value + "+" + eve.attributes["lifecycle:transition"].value); } } let frequencyDfg = FrequencyDfgDiscovery.apply(eventLog, "@@classifier"); let filteredDfg = DfgSliders.filterDfgOnPercPaths(frequencyDfg, 0.2); filteredDfg = FilteredDfgMaximization.apply(filteredDfg); }); test("DFG playout reviewing", () => { let data = fs.readFileSync('examples/input_data/reviewing.xes', {encoding: 'utf-8'}); let eventLog = XesImporter.apply(data); for (let trace of eventLog.traces) { for (let eve of trace.events) { eve.attributes["@@classifier"] = new Attribute(eve.attributes["concept:name"].value + "+" + eve.attributes["lifecycle:transition"].value); } } let frequencyDfg = FrequencyDfgDiscovery.apply(eventLog, "@@classifier"); let simulatedLog = DfgPlayout.apply(frequencyDfg, 100, "concept:name"); }); test("Performance DFG discovery", () => { let data = fs.readFileSync('examples/input_data/reviewing.xes', {encoding: 'utf-8'}); let eventLog = XesImporter.apply(data); for (let trace of eventLog.traces) { for (let eve of trace.events) { eve.attributes["@@classifier"] = new Attribute(eve.attributes["concept:name"].value + "+" + eve.attributes["lifecycle:transition"].value); } } let performanceDfg = PerformanceDfgDiscovery.apply(eventLog, "@@classifier"); let filteredDfg = DfgSliders.filterDfgOnPercPaths(performanceDfg, 0.2); }); test("DFG importing and exporting", () => { let data = fs.readFileSync('examples/input_data/running-example.dfg', {encoding: 'utf-8'}); let frequencyDfg = FrequencyDfgImporter.apply(data); let xmlStri = FrequencyDfgExporter.apply(frequencyDfg); });