import org.junit.jupiter.api.Test; import java.io.*; import static org.junit.jupiter.api.Assertions.*; class MergingTablesTest { @Test void test() { MergingTables.InputReader reader = new MergingTables.InputReader(System.in); MergingTables.OutputWriter writer = new MergingTables.OutputWriter(System.out); MergingTables mergingTables = new MergingTables(reader, writer); mergingTables.tables = new MergingTables.Table[5]; MergingTables.Table t0 = new MergingTables.Table(1); MergingTables.Table t1 = new MergingTables.Table(1); MergingTables.Table t2 = new MergingTables.Table(1); MergingTables.Table t3 = new MergingTables.Table(1); MergingTables.Table t4 = new MergingTables.Table(1); mergingTables.tables[0] = t0; mergingTables.tables[1] = t1; mergingTables.tables[2] = t2; mergingTables.tables[3] = t3; mergingTables.tables[4] = t4; mergingTables.maximumNumberOfRows = 1; mergingTables.rank = new int[]{0, 0, 0, 0, 0}; mergingTables.parent = new int[]{0, 1, 2, 3, 4}; mergingTables.merge(2, 4); assertEquals(2, mergingTables.maximumNumberOfRows); mergingTables.merge(1, 3); assertEquals(2, mergingTables.maximumNumberOfRows); mergingTables.merge(0, 3); assertEquals(3, mergingTables.maximumNumberOfRows); mergingTables.merge(4, 3); assertEquals(5, mergingTables.maximumNumberOfRows); mergingTables.merge(4, 2); assertEquals(5, mergingTables.maximumNumberOfRows); } @Test void test1() { MergingTables.InputReader reader = new MergingTables.InputReader(System.in); MergingTables.OutputWriter writer = new MergingTables.OutputWriter(System.out); MergingTables mergingTables = new MergingTables(reader, writer); mergingTables.tables = new MergingTables.Table[6]; MergingTables.Table t0 = new MergingTables.Table(10); MergingTables.Table t1 = new MergingTables.Table(0); MergingTables.Table t2 = new MergingTables.Table(5); MergingTables.Table t3 = new MergingTables.Table(0); MergingTables.Table t4 = new MergingTables.Table(3); MergingTables.Table t5 = new MergingTables.Table(3); mergingTables.tables[0] = t0; mergingTables.tables[1] = t1; mergingTables.tables[2] = t2; mergingTables.tables[3] = t3; mergingTables.tables[4] = t4; mergingTables.tables[5] = t5; mergingTables.maximumNumberOfRows = 10; mergingTables.rank = new int[]{0, 0, 0, 0, 0, 0}; mergingTables.parent = new int[]{0, 1, 2, 3, 4, 5}; mergingTables.merge(5, 5); assertEquals(10, mergingTables.maximumNumberOfRows); mergingTables.merge(5, 4); assertEquals(10, mergingTables.maximumNumberOfRows); mergingTables.merge(4, 3); assertEquals(10, mergingTables.maximumNumberOfRows); mergingTables.merge(3, 2); assertEquals(11, mergingTables.maximumNumberOfRows); } }