public void FromArrayAndBack() { var testId = new VoxelTypeID(5); var sourceArray = new VoxelTypeID[dimensions.x * dimensions.y * dimensions.z]; Vector3Int[] testPositions = new Vector3Int[] { new Vector3Int(1, 2, 3), new Vector3Int(4, 5, 6), new Vector3Int(7, 8, 9), new Vector3Int(10, 11, 12), new Vector3Int(0, 0, 0), new Vector3Int(15, 15, 15), }; //Initialise source array foreach (var item in testPositions) { var flat = MultiIndexToFlat(item.x, item.y, item.z, dimensions); sourceArray[flat] = testId; } rle = new RLEArray <VoxelTypeID>(dimensions.ToBasic(), sourceArray); var resultArray = rle.ToArray(); for (int i = 0; i < sourceArray.Length; i++) { FlatIndexToMulti(i, dimensions, out var x, out var y, out var z); Assert.AreEqual(sourceArray[i], resultArray[i], $"Result array did not match source for coordinates {x},{y},{z}"); } }
public void FromArrayEmpty() { var sourceArray = new VoxelTypeID[dimensions.x * dimensions.y * dimensions.z]; RLEArray <VoxelTypeID> rle = new RLEArray <VoxelTypeID>(dimensions.ToBasic(), sourceArray); Assert.IsTrue(rle.IsEmpty, $"RLE not empty after initialisation from empty array"); }
public void FromArrayFull() { var sourceArray = new VoxelTypeID[dimensions.x * dimensions.y * dimensions.z]; var testId = new VoxelTypeID(5); for (int i = 0; i < sourceArray.Length; i++) { sourceArray[i] = testId; } RLEArray <VoxelTypeID> rle = new RLEArray <VoxelTypeID>(dimensions.ToBasic(), sourceArray); Assert.IsFalse(rle.IsEmpty, $"RLE empty after initialisation from full array"); }
public void Reset() { dimensions = new int3(16); rle = new RLEArray <VoxelTypeID>(dimensions.ToBasic()); }