private void Update(EvaluationContext context) { var v = Value.GetValue(context); var mod = ModuloValue.GetValue(context); Result.Value = v - mod * (float)Math.Floor(v / mod); }
private void Update(EvaluationContext context) { var v = Value.GetValue(context); var mod = ModuloValue.GetValue(context); if (mod != 0) { Result.Value = v - mod * (float)Math.Floor(v / mod); } else { Log.Debug("Modulo caused division by zero", SymbolChildId); Result.Value = 0; } }
public void CheckInvertTest() { // given: ModuloValue var f = new ModuloValue() { CompareByte = 2, Invert = true }; // when: checking values // then: values don't pass Assert.That(f.Check(0), Is.False); Assert.That(f.Check(2), Is.False); Assert.That(f.Check(4), Is.False); // then: different values pass Assert.That(f.Check(1), Is.True); Assert.That(f.Check(3), Is.True); Assert.That(f.Check(5), Is.True); }