Exemplo n.º 1
0
        internal void Transform_CorrectlyReturnsTheResultFromThePolesFactory_Test(
            [Frozen] Mock <IPolesCoefficientsFactory> polesCoefficientsFactory, IAnalog analog,
            double cutoff, IPolesCoefficients expected, HighpassTransformer highpassTransformer)
        {
            polesCoefficientsFactory.Setup(
                mock =>
                mock.Build(It.IsAny <double>(), It.IsAny <IReadOnlyList <Complex> >(),
                           It.IsAny <IReadOnlyList <Complex> >())).Returns(expected);

            var actual = highpassTransformer.Transform(analog, cutoff);

            Assert.Equal(expected, actual);
        }
Exemplo n.º 2
0
        internal void Transform_CorrectlyTransformsThePCoefficient_Test(
            [Frozen] Mock <IPolesCoefficientsFactory> polesCoefficientsFactory, Mock <IAnalog> analog,
            IPolesCoefficients polesCoefficients, double cutoff, HighpassTransformer highpassTransformer)
        {
            var expected = polesCoefficients.P.RhsDivide(cutoff).ToList();

            analog.SetupGet(mock => mock.Coefficients).Returns(polesCoefficients);

            highpassTransformer.Transform(analog.Object, cutoff);

            polesCoefficientsFactory.Verify(
                mock => mock.Build(It.IsAny <double>(), expected, It.IsAny <IReadOnlyList <Complex> >()), Times.Once);
        }
Exemplo n.º 3
0
        internal void Transform_CorrectlTransformsTheKCoefficient_Test(
            [Frozen] Mock <IPolesCoefficientsFactory> polesCoefficientsFactory, Mock <IAnalog> analog,
            IPolesCoefficients polesCoefficients, double cutoff, HighpassTransformer highpassTransformer)
        {
            var expected = polesCoefficients.K *
                           (polesCoefficients.Z.Negative().Product() / polesCoefficients.P.Negative().Product());

            analog.SetupGet(mock => mock.Coefficients).Returns(polesCoefficients);

            highpassTransformer.Transform(analog.Object, cutoff);

            polesCoefficientsFactory.Verify(
                mock =>
                mock.Build(expected.Real, It.IsAny <IReadOnlyList <Complex> >(), It.IsAny <IReadOnlyList <Complex> >()),
                Times.Once);
        }
Exemplo n.º 4
0
        protected BaseFilterDesign(FilterType filterType)
        {
            this.filterType = filterType;
            this.polesCoefficientsFactory = new PolesCoefficientsFactory();

            ITransformer transformer;

            if (filterType == FilterType.Highpass)
            {
                transformer = new HighpassTransformer(this.polesCoefficientsFactory);
            }
            else
            {
                transformer = new LowPassTransformer(this.polesCoefficientsFactory);
            }

            this.iirProvider =
                new IirProvider(
                    new DigitalPolesProvider(transformer, new DigitalTransformer(polesCoefficientsFactory)),
                    new PolynomialTransformer(new PolynomialCoefficientsFactory()));
        }
Exemplo n.º 5
0
        internal void Transform_CorrectlyTransformsTheZCoefficient_Test(
            [Frozen] Mock <IPolesCoefficientsFactory> polesCoefficientsFactory, Mock <IAnalog> analog,
            IPolesCoefficients polesCoefficients, double cutoff, HighpassTransformer highpassTransformer)
        {
            var degree = polesCoefficients.P.Count - polesCoefficients.Z.Count;

            var z = polesCoefficients.Z.RhsDivide(cutoff).ToList();

            var expected = new List <Complex>(z);

            for (var i = 0; i < degree; i++)
            {
                expected.Add(0.0d);
            }

            analog.SetupGet(mock => mock.Coefficients).Returns(polesCoefficients);

            highpassTransformer.Transform(analog.Object, cutoff);

            polesCoefficientsFactory.Verify(
                mock => mock.Build(It.IsAny <double>(), It.IsAny <IReadOnlyList <Complex> >(), expected), Times.Once);
        }