public void Deactivate() { Partition.UpdateObject(this, false); foreach (var collisionPair in CollisionPairs.Values) { collisionPair.Body2.CollisionPairHolders.Remove(ID); DeactivatePair(collisionPair); } CollisionPairs.Clear(); foreach (var id in CollisionPairHolders) { LSBody other = PhysicsManager.SimObjects[id]; if (other.IsNotNull()) { CollisionPair collisionPair; if (other.CollisionPairs.TryGetValue(ID, out collisionPair)) { other.CollisionPairs.Remove(this.ID); DeactivatePair(collisionPair); } else { Debug.Log("nope " + ID); } } } CollisionPairHolders.Clear(); PhysicsManager.Dessimilate(this); Active = false; }
public void ToString_returnCorrectString() { var time = new DateTime(2018, 01, 01); CollisionPairs _collisionPairs = new CollisionPairs(_track1, _track2, time); Assert.That(_collisionPairs.ToString(), Is.EqualTo("Tag: AAA1111 kolliderer med tag: BBB1111. Tidspunkt: 01-01-2018 00:00:00")); }
public void SetUp() { _track1 = new Track { Tag = "AAA111", PositionX = 15000, PositionY = 12000, Altitude = 700 }; _track2 = new Track { Tag = "BBB222", PositionX = 13000, PositionY = 11000, Altitude = 1000 }; _collisionPairs = new CollisionPairs(_track1, _track2, DateTime.Now); }
public void Notify_ListWith2CollidingTracks_IOutputReceivesCollisionPairString() { var collisionTrack1 = _tracks1[0]; var collisionTrack2 = _tracks1[1]; // Two track is now colliding. collisionTrack1.PositionY = 12000; collisionTrack1.PositionX = 12000; collisionTrack2.PositionY = 12000; collisionTrack2.PositionX = 12000; _tos.RecievedTracks = _tracks1; _tos.Notify(_tos); // Then ATM must have received a Separation event and called ConsoleView.PrintCollisionTracks() correct. var collisionPair = new CollisionPairs((Track)collisionTrack1, (Track)collisionTrack2, DateTime.Now); _output.Received().OutputLine(collisionPair.ToString()); }
public void SetUp() { _track1 = new Track { Tag = "AAA111", PositionX = 15000, PositionY = 12000, Altitude = 700 }; _track2 = new Track { Tag = "BBB222", PositionX = 13000, PositionY = 11000, Altitude = 1000 }; _collisionPairs = new CollisionPairs(_track1, _track2, DateTime.Now); _collisionlist = new List <CollisionPairs>(); _collisionlist.Add(_collisionPairs); _fileLogger = new FileLogger(@"CollisionTestLog.txt"); }
public void Notify_ListWith2CollidingTracks_CollisionPairStringIsWrittenToFile() { var collisionTrack1 = _tracks1[0]; var collisionTrack2 = _tracks1[1]; // Two track is now colliding. collisionTrack1.PositionY = 12000; collisionTrack1.PositionX = 12000; collisionTrack2.PositionY = 12000; collisionTrack2.PositionX = 12000; _tos.RecievedTracks = _tracks1; _tos.Notify(_tos); // Then ATM must have received a Separation event ant called FileLogger.LogCollisionToFile(). // If streamReader reads the collisionpair string in file, then ATM uses FileLogger correct. var collisionPair = new CollisionPairs((Track)collisionTrack1, (Track)collisionTrack2, DateTime.Now); using (StreamReader reader = new StreamReader(_logPath, true)) Assert.That(reader.ReadToEnd(), Contains.Substring(collisionPair.ToString())); }
public void SetUp() { // The faked IOutpus must return a screen size to ConsoleViews ctor. _output = Substitute.For <IOutput>(); _output.When(x => x.GetLargetsScreenSize(out int w, out int h)).Do(x => { x[0] = 80; x[1] = 40; //ConsoleView.SetUp subtracks some from width and height cause cosmetics _width = 80 - 15; _height = 40 - 10; }); _uut = new ConsoleView(_output); _collisionPairs = new CollisionPairs( new Track { Tag = "AAA111", PositionX = 25000, PositionY = 20000, Altitude = 900 }, new Track { Tag = "BBB222", PositionX = 27000, PositionY = 23000, Altitude = 1100 }, DateTime.Now ); _validTracks = new List <ITrack> { new Track { Tag = "AAA111", PositionX = 25000, PositionY = 20000, Altitude = 900 }, new Track { Tag = "BBB222", PositionX = 75000, PositionY = 20000, Altitude = 1900 }, new Track { Tag = "CCC333", PositionX = 12500, PositionY = 38000, Altitude = 2900 } }; _validCollisionPairs = new List <CollisionPairs> { _collisionPairs }; }