public void IfAllValuesAreZero_ThenAnExceptionIsThrown() { var q = new Quantization1f(3); new Func <Quantization1f>(() => q.Normalized) .Should().ThrowExactly <DivideByZeroException>(); }
public void AbleToNormalizeAQuantizationWithOneValue() { var q = new Quantization1f(new[] { 100f, 0, 0 }); var result = q.Normalized; result.GetValues().Should().BeEquivalentTo(new[] { 1f, 0, 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> >(); }
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); }
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) { }
private float GetInvProbability(Quantization1f probability, int quantum) { var scale = quantum * 1.0f / probability.Quantizations; return(probability[quantum] * (1f - scale)); }
private float GetProbability(Quantization1f probability, int quantum) { var scale = Math.Abs(quantum) * 1.0f / probability.Quantizations; return(probability[quantum] * scale); }
public void AbleToGetTheTotal() { var q = new Quantization1f(new[] { 0.1f, 1.04f, 2f }); q.Total.Should().BeApproximately(3.14f, 0.001f); }