public void AlphaMinerDetectActivitySetTest() { Field field = new Field { EventLog = GenerateTestLog() }; AlphaMiner alphaMiner = new AlphaMiner(field); PrivateObject priObj = new PrivateObject(alphaMiner); priObj.Invoke("DetectActivitiySet"); HashSet<String> listOfActivities = (HashSet<String>)priObj.GetField("_listOfActivities"); Assert.IsNotNull(listOfActivities); }
/// <summary> /// Goes through the inductive miner algorithm /// </summary> /// <param name="field">A field from the data selection</param> /// <returns>A PetriNet as a ProcessModel</returns> public static ProcessModel Mine(Field field) { if (field == null) { throw new ArgumentNullException("field", "The field parameter was null"); } TraceFrequency(field); DetectAllConnections(); DivideAndConquer(); return(AlphaMiner.Mine(field)); }
public void AlphaMinerBuildTheNetTest() { Field field = new Field { EventLog = GenerateTestLog() }; AlphaMiner alphaMiner = new AlphaMiner(field); PrivateObject priObj = new PrivateObject(alphaMiner); priObj.Invoke("DetectAllPlaces"); priObj.Invoke("DetectStartAndEndActivitiesInTraces"); priObj.Invoke("AddsPlacesTogether"); priObj.Invoke("RemoveAllDuplicatePlaces"); priObj.Invoke("BuildTheNet"); PetriNet petriNet = (PetriNet)priObj.GetField("_petriNet"); Place startPlace = petriNet.GetPlaceByName("start"); Place endPlace = petriNet.GetPlaceByName("end"); Assert.IsNotNull(petriNet); Assert.IsNotNull(startPlace); Assert.IsNotNull(endPlace); //MiningAlgorithm.AlphaMiner.PetriNet = new PetriNet(""); //MiningAlgorithm.AlphaMiner.ListOfStartActivities.Add("A"); //MiningAlgorithm.AlphaMiner.ListOfEndActivities.Add("D"); //MiningAlgorithm.AlphaMiner.ListOfActivities.Add("A"); //MiningAlgorithm.AlphaMiner.ListOfActivities.Add("B"); //MiningAlgorithm.AlphaMiner.ListOfActivities.Add("C"); //MiningAlgorithm.AlphaMiner.ListOfActivities.Add("D"); //MiningAlgorithm.AlphaMiner.ListOfActivities.Add("E"); //MiningAlgorithm.AlphaMiner.ListOfAlphaPlaces = ListAlphaMinerPlaces; //MiningAlgorithm.AlphaMiner.BuildTheNet(); }
public void DetectAllPlacesTestOntoTrue() { Field field = new Field { EventLog = GenerateTestLog() }; AlphaMiner alphaMiner = new AlphaMiner(field); PrivateObject priObj = new PrivateObject(alphaMiner); priObj.Invoke("DetectAllPlaces"); priObj.Invoke("AddsPlacesTogether"); priObj.Invoke("RemoveAllDuplicatePlaces"); List<AlphaMinerPlaces> alphaPlaces = (List<AlphaMinerPlaces>)priObj.GetField("_listOfAlphaPlaces"); List<AlphaMinerPlaces> testPlaces = new List<AlphaMinerPlaces> { new AlphaMinerPlaces(new HashSet<string> { "A" }, new HashSet<string> { "B", "E" }), new AlphaMinerPlaces(new HashSet<string> { "A" }, new HashSet<string> { "C", "E" }), new AlphaMinerPlaces(new HashSet<string> { "C", "E" }, new HashSet<string> { "D" }), new AlphaMinerPlaces(new HashSet<string> { "B", "E" }, new HashSet<string> { "D" }) }; Assert.IsTrue(alphaPlaces.Count.Equals(testPlaces.Count)); foreach (AlphaMinerPlaces testPlace in testPlaces) { int count = alphaPlaces .Count(k => k.PredecessorHashSet.SetEquals(testPlace.PredecessorHashSet) && k.FollowerHashSet.SetEquals(testPlace.FollowerHashSet)); Assert.IsTrue(count == 1); } }
public void DetectAllPlacesTestOntoFalse() { Field field = new Field { EventLog = GenerateTestLog() }; AlphaMiner alphaMiner = new AlphaMiner(field); PrivateObject priObj = new PrivateObject(alphaMiner); priObj.Invoke("DetectAllPlaces"); priObj.Invoke("AddsPlacesTogether"); priObj.Invoke("RemoveAllDuplicatePlaces"); List<AlphaMinerPlaces> alphaPlaces = (List<AlphaMinerPlaces>)priObj.GetField("_listOfAlphaPlaces"); List<AlphaMinerPlaces> testPlaces = new List<AlphaMinerPlaces> { new AlphaMinerPlaces(new HashSet<string> { "A" }, new HashSet<string> { "B", "E" }), new AlphaMinerPlaces(new HashSet<string> { "A" }, new HashSet<string> { "C", "E" }), new AlphaMinerPlaces(new HashSet<string> { "G", "E" }, new HashSet<string> { "F" }), // correctly -> "C,E", "D" new AlphaMinerPlaces(new HashSet<string> { "B", "E" }, new HashSet<string> { "D" }), new AlphaMinerPlaces(new HashSet<string> { "D" }, new HashSet<string> { "F" }) // too much }; Assert.IsFalse(alphaPlaces.Count.Equals(testPlaces.Count)); Assert.IsFalse(testPlaces[2].PredecessorHashSet.SetEquals(alphaPlaces[2].PredecessorHashSet)); Assert.IsFalse(testPlaces[2].FollowerHashSet.SetEquals(alphaPlaces[2].FollowerHashSet)); }