public void testSortBigMatrixInplace() { // you will need to add option -Xmx1400m to run this SparseMatrixLil B; SparseMatrixLil A = sprand(thousandconstant, largematrixsize); System.out.println("size: " + A.getSize()); System.out.println("created A"); B = A.add(0); // make copy System.out.println("created B"); // System.out.println(B); B.sortInplace(); for (int i = 0; i < B.size; i++) { if (i > 0) { assertTrue(B.colIdx[i] >= B.colIdx[i - 1]); if (B.colIdx[i] == B.colIdx[i - 1]) { assertTrue(B.rowIdx[i] >= B.rowIdx[i - 1]); } } assertEquals(A.rowIdx[i], B.rowIdx[i]); assertEquals(A.colIdx[i], B.colIdx[i]); assertEquals(A.values[i], B.values[i]); } System.out.println("sorted B"); // assertTrue( A.equals(B)); // System.out.println("asserted equals"); // System.out.println(B); B = null; SparseMatrixLil Bt = A.t(); // t() is also a copy System.out.println("transposed A"); // System.out.println(Bt); Timer timer = new Timer(); Bt.sortInplace(); timer.printTimeCheckMilliseconds(); System.out.println("sorted Bt"); for (int i = 0; i < Bt.size; i++) { if (i > 0) { assertTrue(Bt.colIdx[i] >= Bt.colIdx[i - 1]); if (Bt.colIdx[i] == Bt.colIdx[i - 1]) { assertTrue(Bt.rowIdx[i] >= Bt.rowIdx[i - 1]); } } } // System.out.println(Bt); assertTrue(A.toDense().t().equals(Bt)); System.out.println("checed equal to At"); }