public void SparseByteArray_CreateTwoDimensionalArray() { SparseByteArray array = SparseByteArray.CreateInstance(10, 20); Assert.AreEqual(2, array.Rank); Assert.AreEqual(10, array.GetLength(0)); Assert.AreEqual(20, array.GetLength(1)); Assert.AreEqual(10 * 20, array.Length); // Set value array[0, 0] = 1; array[5, 5] = 1; array[9, 9] = 1; // Get value Assert.AreEqual(1, array[0, 0]); Assert.AreEqual(0, array[0, 1]); Assert.AreEqual(0, array[1, 0]); Assert.AreEqual(1, array[5, 5]); Assert.AreEqual(1, array[9, 9]); Assert.AreEqual(3, array.Sum); array[5, 5] = 0; Assert.AreEqual(2, array.Sum); }
public void SparseByteArray_GetRowThrowsInvalidOperationException() { SparseByteArray o; SparseByteArray sparseByteArray; int[] ints = new int[1]; o = SparseByteArray.CreateInstance(ints); sparseByteArray = o.GetRow(0); }
public void SparseByteArray_OutOfRangeIndexAddress() { SparseByteArray array = SparseByteArray.CreateInstance(10, 10); Assert.AreEqual(2, array.Rank); // Set value array[0, 0, 0] = 1; Assert.Fail("We should get an exception"); }
public void SparseByteArray_GetRow() { SparseByteArray o; SparseByteArray sparseByteArray; int[] ints = new int[2]; o = SparseByteArray.CreateInstance(ints); sparseByteArray = o.GetRow(0); Assert.IsNull((object)sparseByteArray); Assert.IsNotNull(o); Assert.AreEqual <int>(2, ((SparseByteArray)o).Rank); Assert.AreEqual <int>(0, ((SparseByteArray)o).Length); }
private void DoTestBackingStoreAndSliceAccessManyDimensions(AbstractSparseBinaryMatrix sm) { /*set diagonal element to true*/ sm.Set(1, 0, 0, 0); sm.Set(1, 1, 1, 1); sm.Set(1, 2, 2, 2); sm.Set(1, 3, 3, 3); sm.Set(1, 4, 4, 4); for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { for (int k = 0; k < 5; k++) { if (k == j & j == i) { Assert.AreEqual(1, sm.GetIntValue(i, j, k)); } } } } SparseByteArray slice = (SparseByteArray)sm.GetSlice(4, 4); for (int i = 0; i < 5; i++) { Assert.AreEqual(1, sm.GetTrueCount(i)); } Console.WriteLine("slice:" + ArrayUtils.IntArrayToString(slice)); Assert.AreEqual(1, slice[4]); /*update first row to true, other to false*/ for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { for (int k = 0; k < 5; k++) { if (0 == i) { sm.Set(1, i, j, k); } else { sm.Set(0, i, j, k); } } } } Assert.AreEqual(25, sm.GetTrueCounts()[0]); Assert.AreEqual(0, sm.GetTrueCounts()[1]); }
public void SparseByteArray_2D_SetRowOfValues() { SparseByteArray array = SparseByteArray.CreateInstance(10, 20); // Set value array[1] = 1; // Get value Assert.AreEqual(0, array[0, 0]); Assert.AreEqual(0, array[0, 1]); Assert.AreEqual(1, array[1, 0]); Assert.AreEqual(1, array[1, 5]); Assert.AreEqual(1, array[1, 9]); Assert.AreEqual(0, array[2, 0]); Assert.AreEqual(0, array[2, 1]); Assert.AreEqual(20, array.GetRow(1).Sum); }