public void ZeroValuesTest() { var m = new ConstrainedWeightedMetrics(); var list = MeasureTestsHelper.RandomUtilityWeightList(_rnd.Next(1, MaxVecLen), 0.0f); float aVal = m.Calculate(list); float cVal = MeasureTestsHelper.CalculateConstrainedWeightedMetricsNorm(list); Assert.That(aVal, Is.EqualTo(Zero).Within(Tolerance)); Assert.That(cVal, Is.EqualTo(Zero).Within(Tolerance)); }
public void CalculateTest( [Values(-100f, -1f, 0f, 1f, 5f, 10f, 100f, 1000000f)] float p, [Values(-1f, 0f, 0.5f, 0.75f, 1f, 2f)] float lowerBound) { var m = new ConstrainedWeightedMetrics(p, lowerBound); var cLb = lowerBound.Clamp01(); var cP = p.Clamp(m.PNormMin, m.PNormMax); Assert.That(m.PNorm, Is.EqualTo(p.Clamp(m.PNormMin, m.PNormMax)).Within(Tolerance)); var list = MeasureTestsHelper.RandomUtilityList(_rnd.Next(1, MaxVecLen)); float aVal = m.Calculate(list); float cVal = MeasureTestsHelper.CalculateConstrainedWeightedMetricsNorm(list, cP, cLb); Assert.That(aVal, Is.EqualTo(cVal).Within(Tolerance)); Assert.That(aVal <= One); Assert.That(aVal >= Zero); }