public void TestNatTraversal() {
Parameters p = new Parameters("Test", "Test");
string[] args = "-c -s=100".Split(' ');
Assert.AreNotEqual(-1, p.Parse(args), "Unable to parse" + p.ErrorMessage);
Simulator sim = new Simulator(p);
_sim = sim;
Assert.IsTrue(sim.Complete(true), "Simulation failed to complete the ring");
SimpleTimer.RunSteps(1000000, false);
TestNat(sim, NatTypes.Cone, NatTypes.Disabled, false);
TestNat(sim, NatTypes.RestrictedCone, NatTypes.Disabled, false);
TestNat(sim, NatTypes.Symmetric, NatTypes.Disabled, true);
TestNat(sim, NatTypes.Symmetric, NatTypes.Disabled, NatTypes.RestrictedCone, NatTypes.Disabled, false);
TestNat(sim, NatTypes.Symmetric, NatTypes.OutgoingOnly, true);
}