public void GenerateTextLongLatDivisions()
        {
            var cylinder = new An8Cylinder();

            cylinder.LongLatDivisions = new An8LongLat
            {
                VerticalDivisions   = 2,
                HorizontalDivisions = 3
            };

            var text = cylinder.GenerateText();

            string expected =
                @"cylinder {
  name { """" }
  length { 0.000000 }
  diameter { 0.000000 }
  topdiameter { 0.000000 }
  longlat { 2 3 }
}
";

            Assert.Equal(
                expected.Replace("\r\n", "\n"),
                text.Replace("\r\n", "\n"));
        }
        public void ParseEmpty()
        {
            var cylinder = new An8Cylinder();

            cylinder.Parse(
                @"
");
        }
        public void ParseOther()
        {
            var cylinder = new An8Cylinder();

            cylinder.Parse(
                @"
other { }
");
        }
        public void NewCylinder()
        {
            var cylinder = new An8Cylinder();

            Assert.Null(cylinder.Material);
            Assert.Null(cylinder.LongLatDivisions);
            Assert.False(cylinder.IsStartCapped);
            Assert.False(cylinder.IsEndCapped);
        }
        public void ParseDiameter()
        {
            var cylinder = new An8Cylinder();

            cylinder.Parse(
                @"
diameter { 2.0 }
");

            Assert.Equal(2.0f, cylinder.Diameter);
        }
        public void ParseLength()
        {
            var cylinder = new An8Cylinder();

            cylinder.Parse(
                @"
length { 2.0 }
");

            Assert.Equal(2.0f, cylinder.Length);
        }
        public void ParseMaterial()
        {
            var cylinder = new An8Cylinder();

            cylinder.Parse(
                @"
material { }
");

            Assert.NotNull(cylinder.Material);
        }
        public void ParseCapEnd()
        {
            var cylinder = new An8Cylinder();

            cylinder.Parse(
                @"
capend { }
");

            Assert.True(cylinder.IsEndCapped);
        }
        public void ParseCapStart()
        {
            var cylinder = new An8Cylinder();

            cylinder.Parse(
                @"
capstart { }
");

            Assert.True(cylinder.IsStartCapped);
        }
        public void ParseLongLatDivisions()
        {
            var cylinder = new An8Cylinder();

            cylinder.Parse(
                @"
longlat { 2 3 }
");

            Assert.NotNull(cylinder.LongLatDivisions);
            Assert.Equal(2, cylinder.LongLatDivisions.VerticalDivisions);
            Assert.Equal(3, cylinder.LongLatDivisions.HorizontalDivisions);
        }
        public void GenerateTextEmpty()
        {
            var cylinder = new An8Cylinder();

            var text = cylinder.GenerateText();

            string expected =
                @"cylinder {
  name { """" }
  length { 0.000000 }
  diameter { 0.000000 }
  topdiameter { 0.000000 }
}
";

            Assert.Equal(
                expected.Replace("\r\n", "\n"),
                text.Replace("\r\n", "\n"));
        }
        public void GenerateTextCapEnd()
        {
            var cylinder = new An8Cylinder();

            cylinder.IsEndCapped = true;

            var text = cylinder.GenerateText();

            string expected =
                @"cylinder {
  name { """" }
  length { 0.000000 }
  diameter { 0.000000 }
  topdiameter { 0.000000 }
  capend { }
}
";

            Assert.Equal(
                expected.Replace("\r\n", "\n"),
                text.Replace("\r\n", "\n"));
        }