public void OrderOkUnderCapacity()
 {
     var buf = new CircularFifoBuffer<int>(10);
     buf.Enqueue(1);
     buf.Enqueue(2);
     buf.Enqueue(3);
     Assert.Equal(3, buf.First());
     Assert.Equal(1, buf.Last());
 }
 public void LengthOkUnderCapacity()
 {
     var buf = new CircularFifoBuffer<int>(10);
     buf.Enqueue(1);
     buf.Enqueue(2);
     buf.Enqueue(3);
     Assert.Equal(3, buf.Length);
     Assert.Equal(buf.Count(), buf.Length);
 }
예제 #3
0
        public void EventDetectedUsingIGCFile(string path, string airfield, int landingAfterSeconds, AircraftTrackEventTypes evtType)
        {
            var beacons = IGCAircraftBeaconReader.ReadFromIGCFile(path, 0x0A000001); // simulate fifo collection
            var beaconsBuffer = new CircularFifoBuffer<AircraftBeaconSpeedAndTrack>(beacons.Count() - 4); // gice the circular buffer a chance to fill the internal buffer
            var events = new List<AircraftTrackEvent>();

            int i = 0;
            foreach (var beacon in beacons)
            {
                beaconsBuffer.Enqueue(new AircraftBeaconSpeedAndTrack(beacon));
                if (i++ % 5 == 0) // analyse with sliding window after some beacons - in normale use triggered by timer.
                {
                    var pseudoTimeEvalDateTime = beacon.PositionTimeUTC.AddSeconds(10);
                    beaconsBuffer.AnalyseSpeedAndTrack(pseudoTimeEvalDateTime, TimeSpan.FromSeconds(60));
                    events.AddRange(beaconsBuffer.DetectTrackEvents(pseudoTimeEvalDateTime, TimeSpan.FromSeconds(60), testAirfields[airfield]));
                }
            }

            var expectedDateTime = beacons.First().PositionTimeUTC + TimeSpan.FromSeconds(landingAfterSeconds);
            var expectedEvents = events.Distinct(new AircraftTrackEventComparer()).Where(e => e.EventType == evtType && e.EventDateTimeUTC == expectedDateTime);

            Assert.True(expectedEvents.Any());
        }
 public void OrderOkOverCapacity()
 {
     var buf = new CircularFifoBuffer<int>(10);
     buf.Enqueue(1);
     buf.Enqueue(2);
     buf.Enqueue(3);
     buf.Enqueue(4);
     buf.Enqueue(5);
     buf.Enqueue(6);
     buf.Enqueue(7);
     buf.Enqueue(8);
     buf.Enqueue(9);
     buf.Enqueue(10);
     buf.Enqueue(11);
     buf.Enqueue(12);
     Assert.Equal(12, buf.First());
     Assert.Equal(3, buf.Last());
 }
 public void LengthOkOverCapacity()
 {
     var buf = new CircularFifoBuffer<int>(10);
     buf.Enqueue(1);
     buf.Enqueue(2);
     buf.Enqueue(3);
     buf.Enqueue(4);
     buf.Enqueue(5);
     buf.Enqueue(6);
     buf.Enqueue(7);
     buf.Enqueue(8);
     buf.Enqueue(9);
     buf.Enqueue(10);
     buf.Enqueue(11);
     Assert.Equal(10, buf.Length);
     Assert.Equal(buf.Count(), buf.Length);
 }
 public void CapacityOk()
 {
     var buf = new CircularFifoBuffer<int>(10);
     buf.Enqueue(1);
     Assert.Equal(10, buf.Capacity);
 }