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;
        }
Beispiel #2
0
        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);
 }
Beispiel #4
0
        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());
        }
Beispiel #5
0
 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");
 }
Beispiel #6
0
        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
            };
        }