/* * Testaa merge() ja mergeBottomUp() minimikekojen tulos */ @Test public void testaaKekoLopputuloksetBothMergetTest() { int summa = instanssiT2.getHeapSize() + instanssiT1.getHeapSize(); instanssiMergeBottomUp = Dkeko.mergeBottomUp(instanssiT1, instanssiT2); instanssiT1 = new Dkeko(2); instanssiT2 = new Dkeko(5); for (int i = 900; i > 400; i--) { solmuMerge = new Solmu(i); instanssiT2.insert(solmuMerge); } for (int i = 400; i >= 0; i--) { solmuMerge = new Solmu(i); instanssiT1.insert(solmuMerge); } instanssi = Dkeko.merge(instanssiT1, instanssiT2); for (int i = 0; i < instanssi.getHeapSize(); i++) { assertEquals(instanssi.deleteMin().getValue(), instanssiMergeBottomUp.deleteMin().getValue()); } }
/** * Testaa deleteMin() odotettu lopputulos,keko palauttaa solmu kerrallaan kunnes keko on * tyhjä.keon minimisolmun arvo tarkistetaan ennen ja jälkeen deleteMin operaatioita.Sen arvon * tulee olla eri ennen ja jälkeen testin */ @Test public void aste20RandomDeleteMinTest() { assertEquals(solmuNull, instanssi20.getMin()); for (int i = 0; i < 9260; i++) { solmuarvo = generator.nextInt(); if (pienin > solmuarvo) { pienin = solmuarvo; } solmu = new Solmu(solmuarvo); instanssi20.insert(solmu); assertEquals(pienin, instanssi20.findMin().getValue()); } while (instanssi20.getHeapSize() != 0) { pienin = instanssi20.findMin().getValue(); assertEquals(pienin, instanssi20.deleteMin().getValue()); if (instanssi20.getHeapSize() != 0) { assertTrue(pienin != instanssi20.findMin().getValue()); } } }
/** * Testaa decreaseKey odotettu lopputulos,keossa olevan solmun arvon pienentäminen onnistuu ja * solmusta tulee keon pienin alkio */ @Test public void aste5RandomDecreaseKeyTest() { assertEquals(solmuNull, instanssi5.findMin()); for (int i = 0; i < 59; i++) { solmuarvo = generator.nextInt(Integer.MAX_VALUE); if (pienin > solmuarvo) { pienin = solmuarvo; } if (suurin < solmuarvo) { suurin = solmuarvo; } solmu = new Solmu(solmuarvo); instanssi5.insert(solmu); assertEquals(pienin, instanssi5.findMin().getValue()); } instanssi5.deleteMin(); assertTrue(pienin != instanssi5.findMin().getValue()); solmu1.setValue(suurin); Kekoalkio alkio = instanssi5.findKekoalkio(solmu1); instanssi5.decreaseKey(alkio, pienin); assertEquals(pienin, instanssi5.findMin().getValue()); }
/** Testaa deleteMin() odotettu lopputulos,keko palauttaa null, koska keko tyhja */ @Test public void tyhjakekodeleteMinTest() { assertNull(instanssi2.findMin()); assertNull(instanssi2.deleteMin()); }