示例#1
0
        public void Sqrt_InputIs4_Return2()
        {
            SingleOp op     = new SingleOp();
            var      result = op.Sqrt(4);

            Assert.AreEqual(result, 2);
        }
示例#2
0
        public void Fact_InputIs4_Return24()
        {
            SingleOp op     = new SingleOp();
            var      result = op.Fact(4);

            Assert.AreEqual(result, 24);
        }
示例#3
0
        public void Abs_InputIsMinus4_Return4()
        {
            SingleOp op     = new SingleOp();
            var      result = op.Abs(-4);

            Assert.AreEqual(result, 4);
        }
示例#4
0
        public void Decrement_InputIs4_Return3()
        {
            SingleOp op     = new SingleOp();
            var      result = op.Decrement(4);

            Assert.AreEqual(result, 3);
        }
示例#5
0
        public void Increment_InputIs4_Return5()
        {
            SingleOp op     = new SingleOp();
            var      result = op.Increment(4);

            Assert.AreEqual(result, 5);
        }
示例#6
0
        public void MessageOperatorsTest()
        {
            int lowercaseCharacterCount = DiscreteChar.Lower().GetProbs().Count(p => p > 0);
            int uppercaseCharacterCount = DiscreteChar.Upper().GetProbs().Count(p => p > 0);

            StringDistribution strDist1  = StringDistribution.OneOf("a", "b", "abc", "ab", "bcd", "d", string.Empty);
            DiscreteChar       charDist1 = SingleOp.CharacterAverageConditional(strDist1);

            Assert.Equal(1.0 / 3.0, charDist1['a'], ProbEps);
            Assert.Equal(1.0 / 3.0, charDist1['b'], ProbEps);
            Assert.Equal(1.0 / 3.0, charDist1['d'], ProbEps);

            StringDistribution strDist2  = StringDistribution.OneOf(strDist1, StringDistribution.OneOf("b", "d"));
            DiscreteChar       charDist2 = SingleOp.CharacterAverageConditional(strDist2);

            Assert.Equal(1.0 / 10.0, charDist2['a'], ProbEps);
            Assert.Equal(4.5 / 10.0, charDist2['b'], ProbEps);
            Assert.Equal(4.5 / 10.0, charDist2['d'], ProbEps);

            StringDistribution strDist3  = StringDistribution.Letters(minLength: 0);
            DiscreteChar       charDist3 = SingleOp.CharacterAverageConditional(strDist3);

            Assert.Equal(1.0 / (lowercaseCharacterCount + uppercaseCharacterCount), charDist3['a'], ProbEps);
            Assert.Equal(1.0 / (lowercaseCharacterCount + uppercaseCharacterCount), charDist3['B'], ProbEps);
            Assert.Equal(1.0 / (lowercaseCharacterCount + uppercaseCharacterCount), charDist3['d'], ProbEps);

            StringDistribution strDist4  = StringDistribution.OneOf(strDist3, StringDistribution.Lower(minLength: 0));
            DiscreteChar       charDist4 = SingleOp.CharacterAverageConditional(strDist4);

            Assert.Equal(2.0 / (2 * lowercaseCharacterCount + uppercaseCharacterCount), charDist4['a'], ProbEps);
            Assert.Equal(1.0 / (2 * lowercaseCharacterCount + uppercaseCharacterCount), charDist4['B'], ProbEps);
            Assert.Equal(2.0 / (2 * lowercaseCharacterCount + uppercaseCharacterCount), charDist4['d'], ProbEps);

            StringDistribution strDist5 = StringDistribution.String("XX").Append(strDist4);

            Assert.Throws <AllZeroException>(() => SingleOp.CharacterAverageConditional(strDist5));
        }