public void ArrangementEqualityTest()
        {
            var s = SqrtOp.Create(2);
            var d = new One();

            Assert.AreEqual(s + d, d + s);
            Assert.AreEqual(s * d, d * s);
        }
    public void SqrtOf8()
    {
        var sqrtOf8 = SqrtOp.Create(Literal.Create(8)).Simplify();
        var two     = new Two();
        var three   = Literal.Create(3);
        var actual  = two.Raise(three / two);

        Assert.AreEqual(sqrtOf8, actual);
    }
    public void FractionRaiseToFraction()
    {
        var twentyFive = Literal.Create(25);
        var thirtyTwo  = Literal.Create(32);
        var oneTenth   = DivideOp.Create(1, 10);
        var result     = (thirtyTwo / twentyFive).Raise(oneTenth);
        var actual     = SqrtOp.Create(2) / PowerOp.Create(5, DivideOp.Create(1, 5));

        Assert.AreEqual(result, actual);
    }
    public void SqrtN16()
    {
        var NegSixteen   = NegativeOp.Create(Literal.Create(16));
        var sqrt         = NegSixteen.Sqrt();
        var four         = Literal.Create(4);
        var sqrtOfNegOne = SqrtOp.Create(-1).Simplify();
        var expected     = four * sqrtOfNegOne;

        Assert.AreEqual(sqrt, expected);
    }