@@ -50,6 +50,7 @@ public class TableTest {
5050 private static final ColumnType [] BUSH_COLUMN_TYPES = {LOCAL_DATE , INTEGER , STRING };
5151 private static Table bush ;
5252 private static Table bushMinimized ;
53+ private static Table missingValues ;
5354
5455 private Table table ;
5556 private final DoubleColumn f1 = DoubleColumn .create ("f1" );
@@ -64,6 +65,8 @@ static void readTables() {
6465 .columnTypes (BUSH_COLUMN_TYPES ));
6566 ColumnType [] types = {LOCAL_DATE , SHORT , STRING };
6667 bushMinimized = Table .read ().csv (CsvReadOptions .builder ("../data/bush.csv" ).columnTypes (types ));
68+ missingValues = Table .read ().csv (CsvReadOptions .builder ("../data/missing_values.csv" )
69+ .missingValueIndicator ("-" ));
6770 }
6871
6972 @ BeforeEach
@@ -916,4 +919,36 @@ public void testToStringColumnsWithVaryingSizes() {
916919 fail ("toString shouldn't throw " + e );
917920 }
918921 }
922+
923+ @ Test
924+ void testCompareRowsIdentical () {
925+ for (int i = 0 ; i < missingValues .rowCount (); i ++) {
926+ assertTrue (Table .compareRows (i , missingValues , missingValues ), "Row " + i + " is not equal to itself" );
927+ }
928+ }
929+
930+ @ Test
931+ void testCompareRowsDifferent () {
932+ Table differentTable = missingValues .copy ().sortDescendingOn ("Sales" );
933+ for (int i = 0 ; i < missingValues .rowCount (); i ++) {
934+ assertFalse (Table .compareRows (i , missingValues , differentTable ), "Row " + i + " is equal to a different row" );
935+ }
936+ }
937+
938+ @ Test
939+ void testCompareRowsDifferentColumns () {
940+ Table differentTable = missingValues .copy ().removeColumns ("Sales" );
941+ for (int i = 0 ; i < missingValues .rowCount (); i ++) {
942+ assertFalse (Table .compareRows (i , missingValues , differentTable ), "Row " + i + " is equal to a row with less columns" );
943+ }
944+ }
945+
946+ @ Test
947+ void testCompareRowsOutOfBound () {
948+ Table differentTable = missingValues .copy ().dropRows (0 );
949+ int lastRowNumber = missingValues .rowCount () - 1 ;
950+ assertThrows (IndexOutOfBoundsException .class ,
951+ () -> Table .compareRows (lastRowNumber , missingValues , differentTable ),
952+ "Row outside range does not throw exception" );
953+ }
919954}
0 commit comments