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)); }