private void AssertEquivalentEmptiness(ITLFormula f) { var t = new GPVW (); var gba = t.GetGBA (f); var ba = gba.ToBA (); var ec = new GBAEmptinessChecker (); var e1 = ec.EmptinessSearch (gba); // Console.WriteLine (e1 ? "Empty" : "Not empty"); var ec2 = new EmptinessChecker<AutomatonNode> (ba); var e2 = ec2.Emptiness (); // Console.WriteLine (e2 ? "Empty" : "Not empty"); //Console.WriteLine (gba.AcceptanceSets.Length); //foreach (var aset in gba.AcceptanceSets) { // Console.WriteLine (aset.Id + " : " + string.Join (",", aset.Nodes)); //} //Console.WriteLine ("---"); //Console.WriteLine (gba.ToDot ()); //Console.WriteLine ("---"); //Console.WriteLine (ba.ToDot ()); //Console.WriteLine ("---"); //if (e1) { // foreach (var i in ec2.dfsStack1.Reverse ()) { // Console.WriteLine (ba.Nodes [i].Name); // } // Console.WriteLine ("-- loop starts here --"); // foreach (var i in ec2.dfsStack2.Reverse ()) { // Console.WriteLine (ba.Nodes [i].Name); // } // Console.WriteLine ("-- loop ends here --"); //} Assert.That (e1 == e2); }
private void AssertEquivalentEmptiness(ITLFormula f) { var gpvw = new GPVW (); var ltl2buchi = new Gia02 (); var gba = gpvw.GetGBA (f); var ba = gba.ToBA (); var ba2 = ltl2buchi.GetBuchiAutomaton (f); Console.WriteLine (ba.ToDot ()); Console.WriteLine (ba2.ToDot ()); var ec = new GBAEmptinessChecker (); var ec2 = new EmptinessChecker<AutomatonNode> (ba); var ec3 = new EmptinessChecker<AutomatonNode> (ba2); var e1 = ec.EmptinessSearch (gba); var e2 = ec2.Emptiness (); var e3 = ec3.Emptiness (); Console.WriteLine (e2); Console.WriteLine (e3); Assert.That (e1 == e2, "GBAEmptinessChecker and EmptinessChecker (on transformed ba) differs"); Assert.That (e2 == e3, "EmptinessChecker and EmptinessChecker (on transformed ba) differs"); Assert.That (e1 == e3, "GBAEmptinessChecker and EmptinessChecker differs"); }