Ejemplo n.º 1
0
        public void IfAllValuesAreZero_ThenAnExceptionIsThrown()
        {
            var q = new Quantization1f(3);

            new Func <Quantization1f>(() => q.Normalized)
            .Should().ThrowExactly <DivideByZeroException>();
        }
Ejemplo n.º 2
0
        public void AbleToNormalizeAQuantizationWithOneValue()
        {
            var q = new Quantization1f(new[] { 100f, 0, 0 });

            var result = q.Normalized;

            result.GetValues().Should().BeEquivalentTo(new[] { 1f, 0, 0 });
        }
Ejemplo n.º 3
0
        public void ANormalizedQuantizationShouldHaveTotalOfOne()
        {
            var q = new Quantization1f(new[] { 100, 0, 20.6f });

            var result = q.Normalized;

            result.Total.Should().Be(1);
        }
        public void IfTwoQuantizationsHaveDifferentLengths_AnExceptionIsThrown()
        {
            var q1 = new Quantization1f(10);
            var q2 = new Quantization1f(11);

            new Func <Quantization1f>(() => q1 + q2)
            .Should().ThrowExactly <QuantizationsMismatchException <float> >();
        }
Ejemplo n.º 5
0
        public void AbleToNormalizeAQuantizationWithMultipleValues()
        {
            var q = new Quantization1f(new[] { 3.3f, 5, 1.7f });

            var result = q.Normalized;

            result[-1].Should().BeApproximately(.33f, 0.001f);
            result[0].Should().Be(.5f);
            result[1].Should().BeApproximately(.17f, 0.001f);
        }
        public void AbleToMultiplyByAFloat()
        {
            var q = new Quantization1f(new[] { 0, 1f, 0.5f });

            var result = q * 1.1f;

            result[-1].Should().Be(0);
            result[0].Should().Be(1.1f);
            result[1].Should().BeApproximately(0.55f, 0.001f);
        }
Ejemplo n.º 7
0
        private float GetRight(Quantization1f probability)
        {
            var total = 0f;

            for (var i = 0; i < probability.Quantizations; i++)
            {
                var quantum = i + 1;
                total += GetProbability(probability, quantum);
            }
            return(total);
        }
        public void AbleToAddTwoTogether()
        {
            var q1 = new Quantization1f(new[] { 0, 11f, 1.8f });
            var q2 = new Quantization1f(new[] { 12, 11.1f, .18f });

            var result = q1 + q2;

            result[-1].Should().Be(12);
            result[0].Should().Be(22.1f);
            result[1].Should().Be(1.98f);
        }
 public Velocity2dProbability(Quantization1f x, Quantization1f y) : base(x, y)
 {
 }
Ejemplo n.º 10
0
        private float GetInvProbability(Quantization1f probability, int quantum)
        {
            var scale = quantum * 1.0f / probability.Quantizations;

            return(probability[quantum] * (1f - scale));
        }
Ejemplo n.º 11
0
        private float GetProbability(Quantization1f probability, int quantum)
        {
            var scale = Math.Abs(quantum) * 1.0f / probability.Quantizations;

            return(probability[quantum] * scale);
        }
Ejemplo n.º 12
0
        public void AbleToGetTheTotal()
        {
            var q = new Quantization1f(new[] { 0.1f, 1.04f, 2f });

            q.Total.Should().BeApproximately(3.14f, 0.001f);
        }