CrossTable implements Iterable<CrossTable.Row> { public Row getRow(int index) { checkArgument(Range.closedOpen(0, (int) nrow).contains(index)); return table.get(index); } CrossTable();  CrossTable(final CrossTable that);  CrossTable(final CrossTable that, long plus); static CrossTable fromContext(final Context<G, M> context); long getNumberOfRows(); long getNumberOfColumns(); void addRow(final MutableBitSet bits); Row getRow(int index); static CrossTable complement(final CrossTable that); static CrossTable horizontalSum(final CrossTable that,
                                           final CrossTable other); static CrossTable verticalSum(final CrossTable that,
                                         final CrossTable other); static CrossTable directProduct(final CrossTable that,
                                           final CrossTable other); Decomposition parallelDecomposition(); Decomposition seriesDecomposition(); ConceptLattice asConceptLattice(final Graph graph); @Override Iterator<Row> iterator(); @Override String toString(); @Override boolean equals(final Object right);  }
@Test public void testGetRow() { exception.expect(java.lang.IllegalArgumentException.class); table.getRow(-10); exception.expect(java.lang.IllegalArgumentException.class); table.getRow(10); assertEquals(table.getRow(1).index, 1); assertEquals(table.getRow(1).intent, bits(1, 2)); }