예제 #1
0
        public void op_UnaryNegation_Test()
        {
            void Test(Polynom PP, Polynom QQ)
            {
                Assert.AreEqual(PP.Power, QQ.Power, "Порядки полиномов P = {0} и Q = {1} не совпадают!", PP, QQ);
                PP.Zip(QQ, (p, q) => new { p, q })
                .Foreach((z, i) => Assert.AreEqual(z.p, -z.q, "Для полинома P = {0} значение {1} коэффициента P[{1}] = {2} не равно инвертированному значению полинома Q = {3} : -Q[{1}] = {4}", PP, i, z.p, QQ, -z.q));
                Assert.IsTrue(PP.Equals(-QQ), "Не выполняется равенство P == Q, если Q = -P для P = {0}, Q = {1}", PP, QQ);

                GetRNDDoubleArray(GetRNDInt(5, 15), -5, 5).Foreach(x => Assert.AreEqual(0, PP.Value(x) + QQ.Value(x), 1e-16));
            }

            var P = new Polynom(3, 5, 7);

            Test(P, -P);

            P = GetRandomPolynom();
            Test(P, -P);
        }