public void ParseComponents()
        {
            var group = new An8Group();

            group.Parse(
                @"
other { }
mesh { }
sphere { }
cylinder { }
cube { }
subdivision { }
path { }
textcom { }
modifier { }
image { }
namedobject { }
group { }
");

            Assert.Equal(11, group.Components.Count);
            Assert.IsType <An8Mesh>(group.Components[0]);
            Assert.IsType <An8Sphere>(group.Components[1]);
            Assert.IsType <An8Cylinder>(group.Components[2]);
            Assert.IsType <An8Cube>(group.Components[3]);
            Assert.IsType <An8Subdivision>(group.Components[4]);
            Assert.IsType <An8Path>(group.Components[5]);
            Assert.IsType <An8TextCom>(group.Components[6]);
            Assert.IsType <An8Modifier>(group.Components[7]);
            Assert.IsType <An8Image>(group.Components[8]);
            Assert.IsType <An8NamedObject>(group.Components[9]);
            Assert.IsType <An8Group>(group.Components[10]);
        }
        public void ParseEmpty()
        {
            var group = new An8Group();

            group.Parse(
                @"
");
        }
        public void ParseOther()
        {
            var group = new An8Group();

            group.Parse(
                @"
other { }
");
        }
        public void ParseName()
        {
            var com = new An8Group();

            com.Parse(
                @"
name { ""abc"" }
");

            Assert.Equal("abc", com.Name);
        }
        public void ParseComponent()
        {
            var group = new An8Group();

            group.Parse(
                @"
group { }
");

            Assert.Equal(1, group.Components.Count);
        }
        public void ParseBase()
        {
            var com = new An8Group();

            com.Parse(
                @"
base {
  other { }
  origin { ( 2.0 3.0 4.0 ) }
  orientation { ( 5.0 6.0 7.0 8.0 ) }
}
");

            Assert.NotNull(com.BaseOrigin);
            Assert.Equal(2.0f, com.BaseOrigin.X);
            Assert.Equal(3.0f, com.BaseOrigin.Y);
            Assert.Equal(4.0f, com.BaseOrigin.Z);
            Assert.NotNull(com.BaseOrientation);
            Assert.Equal(5.0f, com.BaseOrientation.X);
            Assert.Equal(6.0f, com.BaseOrientation.Y);
            Assert.Equal(7.0f, com.BaseOrientation.Z);
            Assert.Equal(8.0f, com.BaseOrientation.W);
        }