public void Test_Voxels_WithEmptyArray_Throws_Nothing() { var writer = new BinaryWriter(new MemoryStream()); var defect = new Defect(new Vector(1, 1, 1), new Vector(2, 2, 2), Array.Empty <Voxel>()); Assert.That(() => defect.WriteToStream(writer), Throws.Nothing); }
public void Test_Mesh_Serialization_HappyPath() { var stream = new MemoryStream(); var writer = new BinaryWriter(stream); var reader = new BinaryReader(stream); var defect = new Defect(new Vector(1, 1, 1), new Vector(3, 3, 3), new Mesh( new[] { 0, 1, 2 }, new[] { 1.0f, 1.0f, 1.0f, 3.0f, 3.0f, 3.0f, 1.0f, 2.0f, 3.0f } )); Assert.That(defect.Voxels, Is.Null); Assert.That(defect.Shape, Is.Not.Null); var clone = new Defect(); Assert.That(() => defect.WriteToStream(writer), Throws.Nothing); stream.Seek(0, SeekOrigin.Begin); Assert.That(() => clone.ReadFromStream(reader, new Version(3, 0)), Throws.Nothing); Assert.That(clone.Position, Is.EqualTo(defect.Position)); Assert.That(clone.Size, Is.EqualTo(defect.Size)); Assert.That(clone.Voxels, Is.Null); Assert.That(clone.Shape, Is.Not.Null); Assert.That(clone.Shape.Value.Indices, Is.EquivalentTo(defect.Shape.Value.Indices)); Assert.That(clone.Shape.Value.Vertices, Is.EquivalentTo(defect.Shape.Value.Vertices)); }
public void Test_Mesh_Throws_FormatException_WithInvalidIndices() { var writer = new BinaryWriter(new MemoryStream()); var defect = new Defect(new Vector(0), new Vector(1, 1, 1), new Mesh( new[] { 0, 0, 1 }, new[] { 0.0f, 0.0f, 0.0f } )); Assert.That(() => defect.WriteToStream(writer), Throws.InstanceOf <FormatException>()); }
public void Test_Voxels_OutOfBounds_Throws_FormatException() { var writer = new BinaryWriter(new MemoryStream()); var defect = new Defect(new Vector(1, 1, 1), new Vector(2, 2, 2), new[] { new Voxel(new Vector(1.5, 1.5, 1.5), new Vector(2, 2, 2)) }); Assert.That(() => defect.WriteToStream(writer), Throws.InstanceOf <FormatException>()); }