예제 #1
0
  @Test
  public void testMultiplyRandom() {
    Random r = new Random();
    DOK2Dint dok = new DOK2Dint(10 + r.nextInt(10), 10 + r.nextInt(10));

    // random matrix
    for (int l = 0; l < dok.nlines(); l++) {
      for (int c = 0; c < dok.ncols(); c++) {
        // 50% chance of random element
        if (r.nextBoolean()) {
          dok.set(l, c, r.nextInt());
        }
      }
    }

    DOK1Dint vec = new DOK1Dint(dok.ncols());

    // random vec
    for (int l = 0; l < vec.nlines(); l++) {
      if (r.nextBoolean()) {
        vec.set(l, r.nextInt());
      }
    }

    // expected result
    DOK1Dint expected = dok.multiply(vec);

    assertEquals(expected, new CSC2Dint(dok).multiply(vec));
  }