public void ConvertToClass()
        {
            dynamic Temp = new TestClass();

            Temp.A = "Testing";
            Temp.B = 1;
            TestClass2 Temp2 = Temp;

            Assert.Equal("Testing", Temp2.A);
            Assert.Equal(1, Temp2.B);

            Temp   = new Utilities.DataTypes.Dynamo();
            Temp.A = "Testing";
            Temp.B = 1;
            Temp2  = Temp;
            Assert.Equal("Testing", Temp2.A);
            Assert.Equal(1, Temp2.B);

            Temp   = new Utilities.DataTypes.Dynamo();
            Temp.A = "Testing";
            Temp.B = 1;
            Temp2  = Temp.To <TestClass2>();
            Assert.Equal("Testing", Temp2.A);
            Assert.Equal(1, Temp2.B);
        }
        public void Initialization()
        {
            dynamic Temp = new Utilities.DataTypes.Dynamo(new { A = "Testing", B = 1 });

            Assert.Equal("Testing", Temp.A);
            Assert.Equal(1, Temp.B);
        }
        public void GetHashCodeTest()
        {
            dynamic Temp = new Utilities.DataTypes.Dynamo(new { A = "Testing", B = 1 });

            Temp.C = null;
            Assert.Equal(255206625, Temp.GetHashCode());
        }
        public void AbstractClass()
        {
            dynamic Temp = new Utilities.DataTypes.Dynamo(new { A = "Testing", B = 1 });

            Assert.Equal("Testing", Temp.A);
            Assert.Equal(1, Temp.B);
            TestAbstractClass Temp2 = Temp;

            Assert.Equal("Testing", Temp2.A);
            Assert.Equal(1, Temp2.B);
        }
        public void Interface()
        {
            dynamic Temp = new Utilities.DataTypes.Dynamo(new { A = "Testing", B = 1 });

            Assert.Equal("Testing", Temp.A);
            Assert.Equal(1, Temp.B);
            ITestInterface Temp2 = Temp;

            Assert.Equal("Testing", Temp2.A);
            Assert.Equal(1, Temp2.B);
        }
        public void SubSet()
        {
            dynamic Temp = new Utilities.DataTypes.Dynamo(new { A = "Testing", B = 1 });

            Assert.Equal("Testing", Temp.A);
            Assert.Equal(1, Temp.B);
            Temp = Temp.SubSet("A");
            Assert.Equal("Testing", Temp.A);
            Assert.False(Temp.ContainsKey("B"));
            Temp.Remove("A");
            Assert.False(Temp.ContainsKey("A"));
        }
        public void ChangeLog()
        {
            dynamic Temp = new TestClass();

            Temp.A = "Testing";
            Temp.B = new Func <string>(() => Temp.A);
            Assert.Equal(1, Temp.ChangeLog.Count);
            Assert.Contains("B", Temp.ChangeLog.Keys);
            dynamic Temp2 = new Utilities.DataTypes.Dynamo(new { A = "Testing" });

            Temp2.A = "Testing2";
            Assert.Equal("Testing", Temp2.ChangeLog["A"].OriginalValue);
            Assert.Equal("Testing2", Temp2.ChangeLog["A"].NewValue);
        }
        public void CopyBetweenItems()
        {
            dynamic Temp = new TestClass();

            Temp.A = "Testing";
            Temp.B = 1;
            Utilities.DataTypes.Dynamo Temp2 = Temp;
            Assert.Equal("Testing", Temp2["A"]);
            Assert.Equal(1, Temp2["B"]);

            Temp   = new Utilities.DataTypes.Dynamo();
            Temp.A = "Testing2";
            Temp.B = 2;
            Temp2  = Temp;
            Assert.Equal("Testing2", Temp2["A"]);
            Assert.Equal(2, Temp2["B"]);
        }