示例#1
0
        private void Update(EvaluationContext context)
        {
            var v   = Value.GetValue(context);
            var mod = ModuloValue.GetValue(context);

            Result.Value = v - mod * (float)Math.Floor(v / mod);
        }
示例#2
0
        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;
            }
        }
示例#3
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);
        }