public void TestTextReader() { Solid solid; using (var str = Utils.OpenDataStream("ASCII.stl")) { var reader = new StlTextReader(str); solid = reader.ReadSolid(); } Assert.NotNull(solid); Assert.Equal(SolidFormat.Ascii, solid.Format); Assert.Equal(12, solid.Facets.Count); foreach (Facet facet in solid.Facets) { Assert.Equal(3, facet.Vertices.Count); } Assert.Throws <ArgumentNullException>(() => new StlTextReader(null)); using (var str = new MemoryStream(Consts.FileEncoding.GetBytes("test"))) { var reader = new StlTextReader(str); var ex = Assert.Throws <FormatException>(() => reader.ReadSolid()); Assert.Equal("Invalid text STL file header. Expected 'solid [name]' but 'test' found.", ex.Message); } using (var str = Utils.MakeStream("solid test\nfacet normal 1 2 3\nouter loop\nvertex 3 2 1\n")) { var reader = new StlTextReader(str); solid = reader.ReadSolid(); Assert.Equal(0, solid.Facets.Count); Assert.Equal(SolidFormat.Ascii, solid.Format); } using (var str = Utils.MakeStream("solid test\nfacet normal 1 2 3\nouter loop\nvertex a 1.2 2\n")) { var reader = new StlTextReader(str); var ex = Assert.Throws <FormatException>(() => reader.ReadSolid()); Assert.Equal("Could not parse X coordinate 'a' as a decimal.", ex.Message); } using (var str = Utils.MakeStream("solid test\nfacet normal 1 2 3\nouter loop\nvertex 1.2 a 2\n")) { var reader = new StlTextReader(str); var ex = Assert.Throws <FormatException>(() => reader.ReadSolid()); Assert.Equal("Could not parse Y coordinate 'a' as a decimal.", ex.Message); } using (var str = Utils.MakeStream("solid test\nfacet normal 1 2 3\nouter loop\nvertex 1.2 2 a\n")) { var reader = new StlTextReader(str); var ex = Assert.Throws <FormatException>(() => reader.ReadSolid()); Assert.Equal("Could not parse Z coordinate 'a' as a decimal.", ex.Message); } }
public void TestTextReader() { Solid solid; using (var str = Utils.OpenDataStream("ASCII.stl")) { var reader = new StlTextReader(str); solid = reader.ReadSolid(); } Assert.NotNull(solid); Assert.Equal(SolidFormat.Ascii, solid.Format); Assert.Equal(12, solid.Facets.Count); foreach (Facet facet in solid.Facets) Assert.Equal(3, facet.Vertices.Count); Assert.Throws<ArgumentNullException>(() => new StlTextReader(null)); using (var str = new MemoryStream(Consts.FileEncoding.GetBytes("test"))) { var reader = new StlTextReader(str); var ex = Assert.Throws<FormatException>(() => reader.ReadSolid()); Assert.Equal("Invalid text STL file header. Expected 'solid [name]' but 'test' found.", ex.Message); } using (var str = Utils.MakeStream("solid test\nfacet normal 1 2 3\nouter loop\nvertex 3 2 1\n")) { var reader = new StlTextReader(str); solid = reader.ReadSolid(); Assert.Equal(0, solid.Facets.Count); Assert.Equal(SolidFormat.Ascii, solid.Format); } using (var str = Utils.MakeStream("solid test\nfacet normal 1 2 3\nouter loop\nvertex a 1.2 2\n")) { var reader = new StlTextReader(str); var ex = Assert.Throws<FormatException>(() => reader.ReadSolid()); Assert.Equal("Could not parse X coordinate 'a' as a decimal.", ex.Message); } using (var str = Utils.MakeStream("solid test\nfacet normal 1 2 3\nouter loop\nvertex 1.2 a 2\n")) { var reader = new StlTextReader(str); var ex = Assert.Throws<FormatException>(() => reader.ReadSolid()); Assert.Equal("Could not parse Y coordinate 'a' as a decimal.", ex.Message); } using (var str = Utils.MakeStream("solid test\nfacet normal 1 2 3\nouter loop\nvertex 1.2 2 a\n")) { var reader = new StlTextReader(str); var ex = Assert.Throws<FormatException>(() => reader.ReadSolid()); Assert.Equal("Could not parse Z coordinate 'a' as a decimal.", ex.Message); } }