diff options
author | Erich Schubert <erich@debian.org> | 2012-12-14 20:45:15 +0100 |
---|---|---|
committer | Andrej Shadura <andrewsh@debian.org> | 2019-03-09 22:30:35 +0000 |
commit | 357b2761a2c0ded8cad5e4d3c1e667b7639ff7a6 (patch) | |
tree | 3dd8947bb70a67c221adc3cd4359ba1d385e2f3c /test/de/lmu/ifi/dbs/elki/utilities/datastructures/heap/TestDoubleObjHeaps.java | |
parent | 4343785ebed9d4145f417d86d581f18a0d31e4ac (diff) | |
parent | b7b404fd7a726774d442562d11659d7b5368cdb9 (diff) |
Import Debian changes 0.5.5-1
elki (0.5.5-1) unstable; urgency=low
* New upstream release: 0.5.5 interim release.
Diffstat (limited to 'test/de/lmu/ifi/dbs/elki/utilities/datastructures/heap/TestDoubleObjHeaps.java')
-rw-r--r-- | test/de/lmu/ifi/dbs/elki/utilities/datastructures/heap/TestDoubleObjHeaps.java | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/test/de/lmu/ifi/dbs/elki/utilities/datastructures/heap/TestDoubleObjHeaps.java b/test/de/lmu/ifi/dbs/elki/utilities/datastructures/heap/TestDoubleObjHeaps.java new file mode 100644 index 00000000..b37fc0b4 --- /dev/null +++ b/test/de/lmu/ifi/dbs/elki/utilities/datastructures/heap/TestDoubleObjHeaps.java @@ -0,0 +1,91 @@ +package de.lmu.ifi.dbs.elki.utilities.datastructures.heap; + +/* + This file is part of ELKI: + Environment for Developing KDD-Applications Supported by Index-Structures + + Copyright (C) 2012 + Ludwig-Maximilians-Universität München + Lehr- und Forschungseinheit für Datenbanksysteme + ELKI Development Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +import static org.junit.Assert.assertTrue; + +import java.util.Random; + +import org.junit.Test; + +import de.lmu.ifi.dbs.elki.JUnit4Test; + +/** + * Perform standard unit tests on the double-object heap structures. + * + * @author Erich Schubert + */ +public class TestDoubleObjHeaps implements JUnit4Test { + @Test + public void testDoubleObjMinHeap() { + Random r = new Random(); + DoubleObjMinHeap<Double> heap = new DoubleObjMinHeap<Double>(); + for(int i = 0; i < 1000; i++) { + double key = r.nextDouble(); + heap.add(key, key); + } + double cur = Double.NEGATIVE_INFINITY; + for(int i = 0; i < 500; i++) { + assertTrue("Heap incorrectly ordered!", cur <= heap.peekKey()); + cur = heap.peekKey(); + heap.poll(); + } + for(int i = 0; i < 10000; i++) { + double key = r.nextDouble(); + heap.add(key, key); + } + cur = Double.NEGATIVE_INFINITY; + while(heap.size() > 0) { + assertTrue("Heap incorrectly ordered!", cur <= heap.peekKey()); + cur = heap.peekKey(); + heap.poll(); + } + } + + @Test + public void testDoubleObjMaxHeap() { + Random r = new Random(); + DoubleObjMaxHeap<Double> heap = new DoubleObjMaxHeap<Double>(); + for(int i = 0; i < 1000; i++) { + double key = r.nextDouble(); + heap.add(key, key); + } + double cur = Double.POSITIVE_INFINITY; + for(int i = 0; i < 500; i++) { + assertTrue("Heap incorrectly ordered!", cur >= heap.peekKey()); + cur = heap.peekKey(); + heap.poll(); + } + for(int i = 0; i < 10000; i++) { + double key = r.nextDouble(); + heap.add(key, key); + } + cur = Double.POSITIVE_INFINITY; + while(heap.size() > 0) { + assertTrue("Heap incorrectly ordered!", cur >= heap.peekKey()); + cur = heap.peekKey(); + heap.poll(); + } + } +} |