Beispiel #1
0
        public void Should_compute_average()
        {
            var sut = new MovingAverage(4);

            sut.ComputeAverage().Should().Be(0);
            sut.Add(2);
            sut.ComputeAverage().Should().Be(2);
            sut.Add(4);
            sut.ComputeAverage().Should().Be(3);
            sut.Add(0);
            sut.ComputeAverage().Should().Be(2);
            sut.Add(6);
            sut.ComputeAverage().Should().Be(3);
            sut.Add(6);
            sut.ComputeAverage().Should().Be(4);
            sut.Add(0);
            sut.Add(0);
            sut.Add(0);
            sut.Add(0);
            sut.ComputeAverage().Should().Be(0);
            sut.Add(10);
            sut.Add(10);
            sut.Add(10);
            sut.Add(10);
            sut.ComputeAverage().Should().Be(10);
        }
Beispiel #2
0
        public static IList <Movement> FilterMovementForceCollection(IList <Movement> movementCollection, int windowSize = 20)
        {
            var movementFilteredCollection = new List <Movement>();

            // The windows default size is 20
            var movingFilter = new MovingAverage(windowSize);

            for (int i = 0; i < movementCollection.Count; i++)
            {
                var movement = movementCollection[i];

                var movementFiltered = new Movement
                {
                    ID             = movement.ID,
                    AnswerRecordID = movement.AnswerRecordID,
                    Index          = movement.Index,
                    Time           = movement.Time,
                    State          = movement.State,
                    TargetElement  = movement.TargetElement,
                    XPosition      = movement.XPosition,
                    YPosition      = movement.YPosition,

                    Force = movingFilter.ComputeAverage(movement.Force)
                };

                movementFilteredCollection.Add(movementFiltered);
            }
            return(movementFilteredCollection);
        }
Beispiel #3
0
        public static IList <DeviceAccelerationCombined> FilterDeviceAccelerationCombinedCollection(IList <DeviceAccelerationCombined> deviceAccelerationCombinedCollection, int windowSize = 20)
        {
            var deviceAccelerationCombinedFilteredCollection = new List <DeviceAccelerationCombined>();

            // The windows default size is 20
            var movingFilter = new MovingAverage(windowSize);

            for (int i = 0; i < deviceAccelerationCombinedCollection.Count; i++)
            {
                var deviceAccelerationCombined = deviceAccelerationCombinedCollection[i];

                var deviceAccelerationCombinedFiltered = new DeviceAccelerationCombined
                {
                    ID             = deviceAccelerationCombined.ID,
                    AnswerRecordID = deviceAccelerationCombined.ID,
                    Index          = deviceAccelerationCombined.Index,
                    Time           = deviceAccelerationCombined.Time,

                    Acceleration = movingFilter.ComputeAverage(deviceAccelerationCombined.Acceleration)
                };

                deviceAccelerationCombinedFilteredCollection.Add(deviceAccelerationCombinedFiltered);
            }
            return(deviceAccelerationCombinedFilteredCollection);
        }
Beispiel #4
0
        public string ToString(TimeSpan span) =>
        new string[]
        {
            new string[]
            {
                Fmt(Counter.FileQueued),
                Fmt(Counter.FileSkipped),
                Fmt(Counter.FileRead),
                Fmt(Counter.Tracking),
                Fmt(Counter.FileLine),
                Fmt("ReadTps", GetReadTps(span)),
                Fmt("TotalOutput", GetTotalOutput()),
                Fmt("SignalDelta", GetSignalDelta()),
            }.Join(", "),

            new string[]
            {
                Fmt(Counter.Parser),
                Fmt(Counter.ParserOut),
                Fmt(Counter.ParserError),
                Fmt(Counter.ParserSkip),
                Fmt(Counter.MsgTypeSkipped),
                Fmt(Counter.ParserFragment),
                Fmt("ParseTps", GetParseTps(span)),
                Fmt("ParseMulti", _parseMultiAvg.ComputeAverage()),
            }.Join(", "),

            new string[]
            {
                Fmt(Counter.Writing),
                Fmt(Counter.Write),
                Fmt(Counter.WriteSkip),
                Fmt("WriteTps", GetWriteTps(span)),
            }.Join(", "),

            new string[]
            {
                Fmt(Counter.ToParseIn),
                Fmt(Counter.ToParseOut),
                Fmt(Counter.ToSaveIn),
                Fmt(Counter.ToSaveOut),
            }.Join(", "),
        }

        .Join(Environment.NewLine);