Instructions
Requirements and Specifications
Source Code
ABSTRACT TEST SORT
import java.util.Arrays;
import java.util.Comparator;
import java.util.Random;
import edu.uwm.cs351.ImmutableSortObject;
import edu.uwm.cs351.SortHarness;
import edu.uwm.cs351.SortObject;
import edu.uwm.cs351.Sorter;
import edu.uwm.cs351.SortStat;
import junit.framework.TestCase;
public abstract class AbstractTestSort extends TestCase {
protected abstract Sorter getAlgorithm();
// for internal tests:
protected Sorter algorithm = getAlgorithm();
protected SortObject self;
protected void setUp(Comparator comp, int... values) {
Integer[] array = new Integer[values.length];
for (int i=0; i < values.length; ++i) {
array[i] = values[i];
}
self = new ImmutableSortObject<>(array, comp);
}
protected void setUp(int ... values) {
setUp((Comparator )null, values);
}
// for numbered tests:
protected void assertStatsRange(int[] lo, int[] stats, int[] hi) {
// System.out.println("stats = " + Arrays.toString(stats) +": in range " + Arrays.toString(lo) + "..." + Arrays.toString(hi));
for (SortStat stat : SortStat.values()) {
int i = stat.ordinal();
if (stats[i] < lo[i] || stats[i] > hi[i]) {
assertFalse(stat + " stats = " + stats[i] + " out or required range [" + lo[i] + "," + hi[i] + "]", true);
}
}
}
protected int[] s(int g, int s, int c) {
return new int[] {g, s, c};
}
protected Sorter sorter = getAlgorithm();
SortHarness harness;
SortObject object;
protected abstract int[] lo(int n, boolean isAdd);
protected abstract int[] hi(int n, boolean isAdd, int ni);
public void test10() {
harness = new SortHarness ("Hello");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("Hello", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test20() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER, "Hello", "hello");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
String a1 = object.get(1);
assertTrue("Wrong: " + a1, a1 == "Hello" || a1 == "hello");
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
String a0 = object.get(0);
assertTrue("Wrong: " + a0, a0 == "Hello" || a0 == "hello");
assertTrue("Duplicate: " + a0, a0 != a1);
assertNull(sorter.violation(object, 0));
}
public void test21() {
harness = new SortHarness ((s1,s2) -> s2.compareTo(s1), "Hello", "Bye");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("Bye", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("Hello", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test22() {
harness = new SortHarness ("Hello", "Bye");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 0));
assertNull(sorter.violation(object, 2));
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("Hello", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("Bye", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test30() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER, "Hello", "hello", "HELLO");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 2));
assertNull(sorter.violation(object, 3));
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
String a2 = object.get(2);
assertTrue(a2 == "Hello" || a2 == "hello" || a2 == "HELLO");
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
String a1 = object.get(1);
assertTrue("Wrong: " + a1, a1 == "Hello" || a1 == "hello" || a1 == "HELLO");
assertTrue("Duplicate: " + a1, a1 != a2);
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
String a0 = object.get(0);
assertTrue("Wrong: " + a0, a0 == "Hello" || a0 == "hello" || a0 == "HELLO");
assertTrue("Duplicate: " + a0, a1 != a0);
assertTrue("Duplicate: " + a0, a2 != a0);
assertNull(sorter.violation(object, 0));
}
public void test31() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER, "Hello", "hello", "Bye");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 0));
assertNull(sorter.violation(object, 3));
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
String a2 = object.get(2);
assertTrue("Wrong: " + a2, a2 == "Hello" || a2 == "hello");
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
String a1 = object.get(1);
assertTrue("Wrong: " + a1, a1 == "Hello" || a1 == "hello");
assertTrue("Duplicate: " + a1, a1 != a2);
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
String a0 = object.get(0);
assertEquals("Bye", a0);
assertNull(sorter.violation(object, 0));
}
public void test32() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER, "Hello", "hello", "world");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 2));
assertNull(sorter.violation(object, 3));
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("world", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
String a1 = object.get(1);
assertTrue("Wrong: " + a1, a1 == "Hello" || a1 == "hello");
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
String a0 = object.get(0);
assertTrue("Wrong: " + a0, a0 == "Hello" || a0 == "hello");
assertTrue("Duplicate: " + a0, a1 != a0);
assertNull(sorter.violation(object, 0));
}
public void test33() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER, "Well", "Hello", "hello");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 0));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 1));
assertNull(sorter.violation(object, 3));
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("Well", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
String a1 = object.get(1);
assertTrue("Wrong: " + a1, a1 == "Hello" || a1 == "hello");
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
String a0 = object.get(0);
assertTrue("Wrong: " + a0, a0 == "Hello" || a0 == "hello");
assertTrue("Duplicate: " + a0, a1 != a0);
assertNull(sorter.violation(object, 0));
}
public void test34() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER, "Hello", "and", "hello");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 0));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 2));
assertNull(sorter.violation(object, 3));
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
String a2 = object.get(2);
assertTrue("Wrong: " + a2, a2 == "Hello" || a2 == "hello");
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
String a1 = object.get(1);
assertTrue("Wrong: " + a1, a1 == "Hello" || a1 == "hello");
assertTrue("Duplicate: " + a1, a1 != a2);
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
String a0 = object.get(0);
assertEquals("and", a0);
assertNull(sorter.violation(object, 0));
}
public void test35() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER, "Hello", "and", "goodbye");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 0));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 1));
assertNull(sorter.violation(object, 3));
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("Hello", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("goodbye", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("and", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test36() {
harness = new SortHarness ("Hello", "and", "goodbye"); // uppercase before lowercase
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 2));
assertNull(sorter.violation(object, 3));
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("goodbye", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("and", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("Hello", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test37() {
harness = new SortHarness ("hello", "good", "world");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 0));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 2));
assertNull(sorter.violation(object, 3));
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("world", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("hello", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("good", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test38() {
harness = new SortHarness ("hello", "good", "earth");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 0));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 0));
assertNull(sorter.violation(object, 3));
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("hello", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("good", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("earth", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test40() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER, "Beat", "beat", "BeAt", "BEAT");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 2));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 3));
assertNull(sorter.violation(object, 4));
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
String a3 = object.get(3);
assertTrue("Wrong: " + a3, a3 == "beat" || a3 == "Beat" || a3 == "BeAt" || a3 == "BEAT");
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
String a2 = object.get(2);
assertTrue("Wrong: " + a2, a2 == "beat" || a2 == "Beat" || a2 == "BeAt" || a2 == "BEAT");
assertTrue("Duplicate: " + a2, a2 != a3);
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
String a1 = object.get(1);
assertTrue("Wrong: " + a1, a1 == "beat" || a1 == "Beat" || a1 == "BeAt" || a1 == "BEAT");
assertTrue("Duplicate: " + a1, a1 != a3);
assertTrue("Duplicate: " + a1, a1 != a2);
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
String a0 = object.get(0);
assertTrue("Wrong: " + a0, a0 == "beat" || a0 == "Beat" || a0 == "BeAt" || a0 == "BEAT");
assertTrue("Duplicate: " + a0, a0 != a3);
assertTrue("Duplicate: " + a0, a0 != a2);
assertTrue("Duplicate: " + a0, a0 != a1);
assertNull(sorter.violation(object, 0));
}
public void test41() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER, "Beat", "drum", "beat", "DRUM");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 1));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 3));
assertNull(sorter.violation(object, 4));
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
String a3 = object.get(3);
assertTrue("Wrong: " + a3, a3 == "drum" || a3 == "DRUM");
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
String a2 = object.get(2);
assertTrue("Wrong: " + a2, a2 == "drum" || a2 == "DRUM");
assertTrue("Duplicate: " + a2, a2 != a3);
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
String a1 = object.get(1);
assertTrue("Wrong: " + a1, a1 == "beat" || a1 == "Beat");
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
String a0 = object.get(0);
assertTrue("Wrong: " + a0, a0 == "beat" || a0 == "Beat");
assertTrue("Duplicate: " + a0, a0 != a1);
assertNull(sorter.violation(object, 0));
}
public void test42() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER, "Beat", "drum", "in", "time");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 2));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 3));
assertNull(sorter.violation(object, 4));
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
assertEquals("time", object.get(3));
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("in", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("drum", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("Beat", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test43() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER, "Once", "upon", "a", "time");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 0));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 2));
assertNull(sorter.violation(object, 4));
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
assertEquals("upon", object.get(3));
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("time", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("Once", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("a", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test44() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER, "All", "in", "good", "time");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 1));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 3));
assertNull(sorter.violation(object, 4));
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
assertEquals("time", object.get(3));
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("in", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("good", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("All", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test50() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER, "A", "rose", "is", "a", "ROSE");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 1));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 1));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 4));
assertNull(sorter.violation(object, 5));
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
String a4 = object.get(4);
assertTrue("Wrong: " + a4, a4 == "rose" || a4 == "ROSE");
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
String a3 = object.get(3);
assertTrue("Wrong: " + a3, a3 == "rose" || a3 == "ROSE");
assertTrue("Duplicate: " + a3, a4 != a3);
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("is", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
String a1 = object.get(1);
assertTrue("Wrong: " + a1, a1 == "A" || a1 == "a");
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
String a0 = object.get(0);
assertTrue("Wrong: " + a0, a0 == "a" || a0 == "A");
assertTrue("Duplicate: " + a0, a0 != a1);
assertNull(sorter.violation(object, 0));
}
public void test51() {
harness = new SortHarness ("one", "two", "three", "four", "five");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 1));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 0));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 0));
assertNull(sorter.violation(object, 5));
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
assertEquals("two", object.get(4));
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
assertEquals("three", object.get(3));
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("one", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("four", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("five", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test52() {
harness = new SortHarness ("1", "2", "3", "4", "5");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 2));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 3));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 4));
assertNull(sorter.violation(object, 5));
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
assertEquals("5", object.get(4));
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
assertEquals("4", object.get(3));
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("3", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("2", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("1", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test60() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER,
"To", "be", "or", "not", "to", "BE");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 0));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 1));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 1));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 4));
assertNull(sorter.violation(object, 5));
harness.setSize(6);
harness.clearStats();
sorter.add(object, 5);
assertStatsRange(lo(5,true), harness.getStats(), hi(5,true, 1));
assertNull(sorter.violation(object, 6));
harness.clearStats();
sorter.remove(object, 5);
assertStatsRange(lo(5,false), harness.getStats(), hi(5,false, 0));
String a5 = object.get(5);
assertTrue("Wrong: " + a5, a5 == "To" || a5 == "to");
assertNull(sorter.violation(object, 5));
harness.setSize(5);
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
String a4 = object.get(4);
assertTrue("Wrong: " + a4, a4 == "To" || a4 == "to");
assertTrue("Duplicate: " + a4, a4 != a5);
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
assertEquals("or", object.get(3));
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("not", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
String a1 = object.get(1);
assertTrue("Wrong: " + a1, a1 == "be" || a1 == "BE");
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
String a0 = object.get(0);
assertTrue("Wrong: " + a0, a0 == "be" || a0 == "BE");
assertTrue("Duplicate: " + a0, a0 != a1);
assertNull(sorter.violation(object, 0));
}
public void test61() {
harness = new SortHarness ("uno", "dos", "tres", "cuatro", "cinco", "seis");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 0));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 1));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 0));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 0));
assertNull(sorter.violation(object, 5));
harness.setSize(6);
harness.clearStats();
sorter.add(object, 5);
assertStatsRange(lo(5,true), harness.getStats(), hi(5,true, 3));
assertNull(sorter.violation(object, 6));
harness.clearStats();
sorter.remove(object, 5);
assertStatsRange(lo(5,false), harness.getStats(), hi(5,false, 0));
assertEquals("uno", object.get(5));
assertNull(sorter.violation(object, 5));
harness.setSize(5);
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
assertEquals("tres", object.get(4));
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
assertEquals("seis", object.get(3));
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("dos", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("cuatro", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("cinco", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test62() {
harness = new SortHarness ("A", "B", "C", "D", "E", "F");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 2));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 3));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 4));
assertNull(sorter.violation(object, 5));
harness.setSize(6);
harness.clearStats();
sorter.add(object, 5);
assertStatsRange(lo(5,true), harness.getStats(), hi(5,true, 5));
assertNull(sorter.violation(object, 6));
harness.clearStats();
sorter.remove(object, 5);
assertStatsRange(lo(5,false), harness.getStats(), hi(5,false, 0));
assertEquals("F", object.get(5));
assertNull(sorter.violation(object, 5));
harness.setSize(5);
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
assertEquals("E", object.get(4));
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
assertEquals("D", object.get(3));
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("C", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("B", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("A", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test63() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER, "A", "stitch", "in", "time", "saves", "nine");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 1));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 3));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 2));
assertNull(sorter.violation(object, 5));
harness.setSize(6);
harness.clearStats();
sorter.add(object, 5);
assertStatsRange(lo(5,true), harness.getStats(), hi(5,true, 2));
assertNull(sorter.violation(object, 6));
harness.clearStats();
sorter.remove(object, 5);
assertStatsRange(lo(5,false), harness.getStats(), hi(5,false, 0));
assertEquals("time", object.get(5));
assertNull(sorter.violation(object, 5));
harness.setSize(5);
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
assertEquals("stitch", object.get(4));
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
assertEquals("saves", object.get(3));
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("nine", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("in", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("A", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test70() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER,
"Bear", "with", "me", "not", "ME", "WITH", "BEAR");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 1));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 2));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 2));
assertNull(sorter.violation(object, 5));
harness.setSize(6);
harness.clearStats();
sorter.add(object, 5);
assertStatsRange(lo(5,true), harness.getStats(), hi(5,true, 5));
assertNull(sorter.violation(object, 6));
harness.setSize(7);
harness.clearStats();
sorter.add(object, 6);
assertStatsRange(lo(6,true), harness.getStats(), hi(6,true, 1));
assertNull(sorter.violation(object, 7));
harness.clearStats();
sorter.remove(object, 6);
assertStatsRange(lo(6,false), harness.getStats(), hi(6,false, 0));
String a6 = object.get(6);
assertTrue("Wrong: " + a6, a6 == "with" || a6 == "WITH");
assertNull(sorter.violation(object, 6));
harness.setSize(6);
harness.clearStats();
sorter.remove(object, 5);
assertStatsRange(lo(5,false), harness.getStats(), hi(5,false, 0));
String a5 = object.get(5);
assertTrue("Wrong: " + a5, a5 == "with" || a5 == "WITH");
assertTrue("Duplicate: " + a5, a6 != a5);
assertNull(sorter.violation(object, 5));
harness.setSize(5);
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
assertEquals("not", object.get(4));
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
String a3 = object.get(3);
assertTrue("Wrong: " + a3, a3 == "me" || a3 == "ME");
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
String a2 = object.get(2);
assertTrue("Wrong: " + a2, a2 == "me" || a2 == "ME");
assertTrue("Duplicate: " + a2, a2 != a3);
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
String a1 = object.get(1);
assertTrue("Wrong: " + a1, a1 == "Bear" || a1 == "BEAR");
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
String a0 = object.get(0);
assertTrue("Wrong: " + a0, a0 == "Bear" || a0 == "BEAR");
assertTrue("Duplicate: " + a0, a0 != a1);
assertNull(sorter.violation(object, 0));
}
public void test71() {
harness = new SortHarness ("yī", "èr", "sān", "sì", "wǔ", "liù", "qī");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 0));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 0));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 0));
assertNull(sorter.violation(object, 5));
harness.setSize(6);
harness.clearStats();
sorter.add(object, 5);
assertStatsRange(lo(5,true), harness.getStats(), hi(5,true, 0));
assertNull(sorter.violation(object, 6));
harness.setSize(7);
harness.clearStats();
sorter.add(object, 6);
assertStatsRange(lo(6,true), harness.getStats(), hi(6,true, 0));
assertNull(sorter.violation(object, 7));
harness.clearStats();
sorter.remove(object, 6);
assertStatsRange(lo(6,false), harness.getStats(), hi(6,false, 0));
assertEquals("èr", object.get(6));
assertNull(sorter.violation(object, 6));
harness.setSize(6);
harness.clearStats();
sorter.remove(object, 5);
assertStatsRange(lo(5,false), harness.getStats(), hi(5,false, 0));
assertEquals("yī", object.get(5));
assertNull(sorter.violation(object, 5));
harness.setSize(5);
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
assertEquals("wǔ", object.get(4));
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
assertEquals("sān", object.get(3));
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("sì", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("qī", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("liù", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test72() {
harness = new SortHarness ("0", "00", "000", "0000", "00000", "000000", "0000000");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 2));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 3));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 4));
assertNull(sorter.violation(object, 5));
harness.setSize(6);
harness.clearStats();
sorter.add(object, 5);
assertStatsRange(lo(5,true), harness.getStats(), hi(5,true, 5));
assertNull(sorter.violation(object, 6));
harness.setSize(7);
harness.clearStats();
sorter.add(object, 6);
assertStatsRange(lo(6,true), harness.getStats(), hi(6,true, 6));
assertNull(sorter.violation(object, 7));
harness.clearStats();
sorter.remove(object, 6);
assertStatsRange(lo(6,false), harness.getStats(), hi(6,false, 0));
assertEquals("0000000", object.get(6));
assertNull(sorter.violation(object, 6));
harness.setSize(6);
harness.clearStats();
sorter.remove(object, 5);
assertStatsRange(lo(5,false), harness.getStats(), hi(5,false, 0));
assertEquals("000000", object.get(5));
assertNull(sorter.violation(object, 5));
harness.setSize(5);
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
assertEquals("00000", object.get(4));
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
assertEquals("0000", object.get(3));
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("000", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("00", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("0", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test80() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER,
"A", "Rose", "is", "a", "rose", "IS", "a", "ROSE");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 1));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 1));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 4));
assertNull(sorter.violation(object, 5));
harness.setSize(6);
harness.clearStats();
sorter.add(object, 5);
assertStatsRange(lo(5,true), harness.getStats(), hi(5,true, 2));
assertNull(sorter.violation(object, 6));
harness.setSize(7);
harness.clearStats();
sorter.add(object, 6);
assertStatsRange(lo(6,true), harness.getStats(), hi(6,true, 2));
assertNull(sorter.violation(object, 7));
harness.setSize(8);
harness.clearStats();
sorter.add(object, 7);
assertStatsRange(lo(7,true), harness.getStats(), hi(7,true, 7));
assertNull(sorter.violation(object, 8));
harness.clearStats();
sorter.remove(object, 7);
assertStatsRange(lo(7,false), harness.getStats(), hi(7,false, 0));
String a7 = object.get(7);
assertTrue("Wrong: " + a7, a7 == "Rose" || a7 == "rose" || a7 == "ROSE");
assertNull(sorter.violation(object, 7));
harness.setSize(7);
harness.clearStats();
sorter.remove(object, 6);
assertStatsRange(lo(6,false), harness.getStats(), hi(6,false, 0));
String a6 = object.get(6);
assertTrue("Wrong: " + a6, a6 == "Rose" || a6 == "rose" || a6 == "ROSE");
assertTrue("Duplicate: " + a6, a6 != a7);
assertNull(sorter.violation(object, 6));
harness.setSize(6);
harness.clearStats();
sorter.remove(object, 5);
assertStatsRange(lo(5,false), harness.getStats(), hi(5,false, 0));
String a5 = object.get(5);
assertTrue("Wrong: " + a5, a5 == "Rose" || a5 == "rose" || a5 == "ROSE");
assertTrue("Duplicate: " + a5, a6 != a5);
assertTrue("Duplicate: " + a5, a7 != a5);
assertNull(sorter.violation(object, 5));
harness.setSize(5);
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
String a4 = object.get(4);
assertTrue("Wrong: " + a4, a4 == "is" || a4 == "IS");
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
String a3 = object.get(3);
assertTrue("Wrong: " + a3, a3 == "is" || a3 == "IS");
assertTrue("Duplicate: " + a3, a3 != a4);
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
String a2 = object.get(2);
assertTrue("Wrong: " + a2, a2 == "A" || a2 == "a");
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
String a1 = object.get(1);
assertTrue("Wrong: " + a1, a1 == "A" || a1 == "a");
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
String a0 = object.get(0);
assertTrue("Wrong: " + a0, a0 == "A" || a0 == "a");
assertNull(sorter.violation(object, 0));
}
public void test81() {
harness = new SortHarness ("un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 0));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 1));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 1));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 0));
assertNull(sorter.violation(object, 5));
harness.setSize(6);
harness.clearStats();
sorter.add(object, 5);
assertStatsRange(lo(5,true), harness.getStats(), hi(5,true, 3));
assertNull(sorter.violation(object, 6));
harness.setSize(7);
harness.clearStats();
sorter.add(object, 6);
assertStatsRange(lo(6,true), harness.getStats(), hi(6,true, 3));
assertNull(sorter.violation(object, 7));
harness.setSize(8);
harness.clearStats();
sorter.add(object, 7);
assertStatsRange(lo(7,true), harness.getStats(), hi(7,true, 2));
assertNull(sorter.violation(object, 8));
harness.clearStats();
sorter.remove(object, 7);
assertStatsRange(lo(7,false), harness.getStats(), hi(7,false, 0));
assertEquals("un", object.get(7));
assertNull(sorter.violation(object, 7));
harness.setSize(7);
harness.clearStats();
sorter.remove(object, 6);
assertStatsRange(lo(6,false), harness.getStats(), hi(6,false, 0));
assertEquals("trois", object.get(6));
assertNull(sorter.violation(object, 6));
harness.setSize(6);
harness.clearStats();
sorter.remove(object, 5);
assertStatsRange(lo(5,false), harness.getStats(), hi(5,false, 0));
assertEquals("six", object.get(5));
assertNull(sorter.violation(object, 5));
harness.setSize(5);
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
assertEquals("sept", object.get(4));
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
assertEquals("quatre", object.get(3));
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("huit", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("deux", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("cinq", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test82() {
harness = new SortHarness ("a", "b", "c", "d", "e", "f", "g", "h");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 2));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 3));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 4));
assertNull(sorter.violation(object, 5));
harness.setSize(6);
harness.clearStats();
sorter.add(object, 5);
assertStatsRange(lo(5,true), harness.getStats(), hi(5,true, 5));
assertNull(sorter.violation(object, 6));
harness.setSize(7);
harness.clearStats();
sorter.add(object, 6);
assertStatsRange(lo(6,true), harness.getStats(), hi(6,true, 6));
assertNull(sorter.violation(object, 7));
harness.setSize(8);
harness.clearStats();
sorter.add(object, 7);
assertStatsRange(lo(7,true), harness.getStats(), hi(7,true, 7));
assertNull(sorter.violation(object, 8));
harness.clearStats();
sorter.remove(object, 7);
assertStatsRange(lo(7,false), harness.getStats(), hi(7,false, 0));
assertEquals("h", object.get(7));
assertNull(sorter.violation(object, 7));
harness.setSize(7);
harness.clearStats();
sorter.remove(object, 6);
assertStatsRange(lo(6,false), harness.getStats(), hi(6,false, 0));
assertEquals("g", object.get(6));
assertNull(sorter.violation(object, 6));
harness.setSize(6);
harness.clearStats();
sorter.remove(object, 5);
assertStatsRange(lo(5,false), harness.getStats(), hi(5,false, 0));
assertEquals("f", object.get(5));
assertNull(sorter.violation(object, 5));
harness.setSize(5);
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
assertEquals("e", object.get(4));
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
assertEquals("d", object.get(3));
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
assertEquals("c", object.get(2));
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("b", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
assertEquals("a", object.get(0));
assertNull(sorter.violation(object, 0));
}
public void test90() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER,
"Don't", "count", "the", "days", "just", "make", "The", "Days", "COUNT");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 0));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 2));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 1));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 3));
assertNull(sorter.violation(object, 5));
harness.setSize(6);
harness.clearStats();
sorter.add(object, 5);
assertStatsRange(lo(5,true), harness.getStats(), hi(5,true, 4));
assertNull(sorter.violation(object, 6));
harness.setSize(7);
harness.clearStats();
sorter.add(object, 6);
assertStatsRange(lo(6,true), harness.getStats(), hi(6,true, 6));
assertNull(sorter.violation(object, 7));
harness.setSize(8);
harness.clearStats();
sorter.add(object, 7);
assertStatsRange(lo(7,true), harness.getStats(), hi(7,true, 2));
assertNull(sorter.violation(object, 8));
harness.setSize(9);
harness.clearStats();
sorter.add(object, 8);
assertStatsRange(lo(8,true), harness.getStats(), hi(8,true, 1));
assertNull(sorter.violation(object, 9));
harness.clearStats();
sorter.remove(object, 8);
assertStatsRange(lo(8,false), harness.getStats(), hi(8,false, 0));
String a8 = object.get(8);
assertTrue("Wrong: " + a8, a8 == "the" || a8 == "The");
assertNull(sorter.violation(object, 8));
harness.setSize(8);
harness.clearStats();
sorter.remove(object, 7);
assertStatsRange(lo(7,false), harness.getStats(), hi(7,false, 0));
String a7 = object.get(7);
assertTrue("Wrong: " + a7, a7 == "the" || a7 == "The");
assertTrue("Duplicate: " + a7, a8 != a7);
assertNull(sorter.violation(object, 7));
harness.setSize(7);
harness.clearStats();
sorter.remove(object, 6);
assertStatsRange(lo(6,false), harness.getStats(), hi(6,false, 0));
assertEquals("make", object.get(6));
assertNull(sorter.violation(object, 6));
harness.setSize(6);
harness.clearStats();
sorter.remove(object, 5);
assertStatsRange(lo(5,false), harness.getStats(), hi(5,false, 0));
assertEquals("just", object.get(5));
assertNull(sorter.violation(object, 5));
harness.setSize(5);
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
assertEquals("Don't", object.get(4));
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
String a3 = object.get(3);
assertTrue("Wrong: " + a3, a3 == "days" || a3 == "Days");
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
String a2 = object.get(2);
assertTrue("Wrong: " + a2, a2 == "days" || a2 == "Days");
assertTrue("Duplicate: " + a2, a2 != a3);
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
String a1 = object.get(1);
assertTrue("Wrong: " + a1, a1 == "count" || a1 == "COUNT");
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
String a0 = object.get(0);
assertTrue("Wrong: " + a0, a0 == "count" || a0 == "COUNT");
assertTrue("Duplicate: " + a0, a0 != a1);
assertNull(sorter.violation(object, 0));
}
public void test91() {
harness = new SortHarness (
"eins", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 0));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 2));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 2));
assertNull(sorter.violation(object, 5));
harness.setSize(6);
harness.clearStats();
sorter.add(object, 5);
assertStatsRange(lo(5,true), harness.getStats(), hi(5,true, 3));
assertNull(sorter.violation(object, 6));
harness.setSize(7);
harness.clearStats();
sorter.add(object, 6);
assertStatsRange(lo(6,true), harness.getStats(), hi(6,true, 4));
assertNull(sorter.violation(object, 7));
harness.setSize(8);
harness.clearStats();
sorter.add(object, 7);
assertStatsRange(lo(7,true), harness.getStats(), hi(7,true, 0));
assertNull(sorter.violation(object, 8));
harness.setSize(9);
harness.clearStats();
sorter.add(object, 8);
assertStatsRange(lo(8,true), harness.getStats(), hi(8,true, 4));
assertNull(sorter.violation(object, 9));
harness.clearStats();
sorter.remove(object, 8);
assertStatsRange(lo(8,false), harness.getStats(), hi(8,false, 0));
String a8 = object.get(8);
assertEquals("zwei", a8);
assertNull(sorter.violation(object, 8));
harness.setSize(8);
harness.clearStats();
sorter.remove(object, 7);
assertStatsRange(lo(7,false), harness.getStats(), hi(7,false, 0));
String a7 = object.get(7);
assertEquals("vier", a7);
assertNull(sorter.violation(object, 7));
harness.setSize(7);
harness.clearStats();
sorter.remove(object, 6);
assertStatsRange(lo(6,false), harness.getStats(), hi(6,false, 0));
assertEquals("sieben", object.get(6));
assertNull(sorter.violation(object, 6));
harness.setSize(6);
harness.clearStats();
sorter.remove(object, 5);
assertStatsRange(lo(5,false), harness.getStats(), hi(5,false, 0));
assertEquals("sechs", object.get(5));
assertNull(sorter.violation(object, 5));
harness.setSize(5);
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
assertEquals("neun", object.get(4));
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
String a3 = object.get(3);
assertEquals("fünf", a3);
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
String a2 = object.get(2);
assertEquals("eins", a2);
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("drei", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
String a0 = object.get(0);
assertEquals("acht", a0);
assertNull(sorter.violation(object, 0));
}
public void test92() {
harness = new SortHarness (
"A1", "B2", "C3", "D4", "E5", "F6", "G7", "H8", "I9");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 2));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 3));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 4));
assertNull(sorter.violation(object, 5));
harness.setSize(6);
harness.clearStats();
sorter.add(object, 5);
assertStatsRange(lo(5,true), harness.getStats(), hi(5,true, 5));
assertNull(sorter.violation(object, 6));
harness.setSize(7);
harness.clearStats();
sorter.add(object, 6);
assertStatsRange(lo(6,true), harness.getStats(), hi(6,true, 6));
assertNull(sorter.violation(object, 7));
harness.setSize(8);
harness.clearStats();
sorter.add(object, 7);
assertStatsRange(lo(7,true), harness.getStats(), hi(7,true, 7));
assertNull(sorter.violation(object, 8));
harness.setSize(9);
harness.clearStats();
sorter.add(object, 8);
assertStatsRange(lo(8,true), harness.getStats(), hi(8,true, 8));
assertNull(sorter.violation(object, 9));
harness.clearStats();
sorter.remove(object, 8);
assertStatsRange(lo(8,false), harness.getStats(), hi(8,false, 0));
String a8 = object.get(8);
assertEquals("I9", a8);
assertNull(sorter.violation(object, 8));
harness.setSize(8);
harness.clearStats();
sorter.remove(object, 7);
assertStatsRange(lo(7,false), harness.getStats(), hi(7,false, 0));
String a7 = object.get(7);
assertEquals("H8", a7);
assertNull(sorter.violation(object, 7));
harness.setSize(7);
harness.clearStats();
sorter.remove(object, 6);
assertStatsRange(lo(6,false), harness.getStats(), hi(6,false, 0));
assertEquals("G7", object.get(6));
assertNull(sorter.violation(object, 6));
harness.setSize(6);
harness.clearStats();
sorter.remove(object, 5);
assertStatsRange(lo(5,false), harness.getStats(), hi(5,false, 0));
assertEquals("F6", object.get(5));
assertNull(sorter.violation(object, 5));
harness.setSize(5);
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
assertEquals("E5", object.get(4));
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
String a3 = object.get(3);
assertEquals("D4", a3);
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
String a2 = object.get(2);
assertEquals("C3", a2);
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("B2", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
String a0 = object.get(0);
assertEquals("A1", a0);
assertNull(sorter.violation(object, 0));
}
public void test93() {
harness = new SortHarness (String.CASE_INSENSITIVE_ORDER,
"In", "two", "days", "from", "now", "tomorrow", "will", "be", "yesterday");
object = harness.sortObject();
harness.setSize(0);
assertNull(sorter.violation(object, 0));
harness.setSize(1);
harness.clearStats();
sorter.add(object, 0);
assertStatsRange(lo(0,true), harness.getStats(), hi(0,true, 0));
assertNull(sorter.violation(object, 1));
harness.setSize(2);
harness.clearStats();
sorter.add(object, 1);
assertStatsRange(lo(1,true), harness.getStats(), hi(1,true, 1));
assertNull(sorter.violation(object, 2));
harness.setSize(3);
harness.clearStats();
sorter.add(object, 2);
assertStatsRange(lo(2,true), harness.getStats(), hi(2,true, 0));
assertNull(sorter.violation(object, 3));
harness.setSize(4);
harness.clearStats();
sorter.add(object, 3);
assertStatsRange(lo(3,true), harness.getStats(), hi(3,true, 1));
assertNull(sorter.violation(object, 4));
harness.setSize(5);
harness.clearStats();
sorter.add(object, 4);
assertStatsRange(lo(4,true), harness.getStats(), hi(4,true, 3));
assertNull(sorter.violation(object, 5));
harness.setSize(6);
harness.clearStats();
sorter.add(object, 5);
assertStatsRange(lo(5,true), harness.getStats(), hi(5,true, 4));
assertNull(sorter.violation(object, 6));
harness.setSize(7);
harness.clearStats();
sorter.add(object, 6);
assertStatsRange(lo(6,true), harness.getStats(), hi(6,true, 6));
assertNull(sorter.violation(object, 7));
harness.setSize(8);
harness.clearStats();
sorter.add(object, 7);
assertStatsRange(lo(7,true), harness.getStats(), hi(7,true, 0));
assertNull(sorter.violation(object, 8));
harness.setSize(9);
harness.clearStats();
sorter.add(object, 8);
assertStatsRange(lo(8,true), harness.getStats(), hi(8,true, 8));
assertNull(sorter.violation(object, 9));
harness.clearStats();
sorter.remove(object, 8);
assertStatsRange(lo(8,false), harness.getStats(), hi(8,false, 0));
String a8 = object.get(8);
assertEquals("yesterday", a8);
assertNull(sorter.violation(object, 8));
harness.setSize(8);
harness.clearStats();
sorter.remove(object, 7);
assertStatsRange(lo(7,false), harness.getStats(), hi(7,false, 0));
String a7 = object.get(7);
assertEquals("will", a7);
assertNull(sorter.violation(object, 7));
harness.setSize(7);
harness.clearStats();
sorter.remove(object, 6);
assertStatsRange(lo(6,false), harness.getStats(), hi(6,false, 0));
assertEquals("two", object.get(6));
assertNull(sorter.violation(object, 6));
harness.setSize(6);
harness.clearStats();
sorter.remove(object, 5);
assertStatsRange(lo(5,false), harness.getStats(), hi(5,false, 0));
assertEquals("tomorrow", object.get(5));
assertNull(sorter.violation(object, 5));
harness.setSize(5);
harness.clearStats();
sorter.remove(object, 4);
assertStatsRange(lo(4,false), harness.getStats(), hi(4,false, 0));
assertEquals("now", object.get(4));
assertNull(sorter.violation(object, 4));
harness.setSize(4);
harness.clearStats();
sorter.remove(object, 3);
assertStatsRange(lo(3,false), harness.getStats(), hi(3,false, 0));
String a3 = object.get(3);
assertEquals("In", a3);
assertNull(sorter.violation(object, 3));
harness.setSize(3);
harness.clearStats();
sorter.remove(object, 2);
assertStatsRange(lo(2,false), harness.getStats(), hi(2,false, 0));
String a2 = object.get(2);
assertEquals("from", a2);
assertNull(sorter.violation(object, 2));
harness.setSize(2);
harness.clearStats();
sorter.remove(object, 1);
assertStatsRange(lo(1,false), harness.getStats(), hi(1,false, 0));
assertEquals("days", object.get(1));
assertNull(sorter.violation(object, 1));
harness.setSize(1);
harness.clearStats();
sorter.remove(object, 0);
assertStatsRange(lo(0,false), harness.getStats(), hi(0,false, 0));
String a0 = object.get(0);
assertEquals("be", a0);
assertNull(sorter.violation(object, 0));
}
private static final int TEST_SIZE = 10;
private static final int RANDOM_TESTS = 10000;
protected String randomString(Random r) {
return (""+(1000+r.nextInt(1000))).substring(1);
}
public void test99() {
Random random = new Random();
String[] subject = new String[TEST_SIZE];
for (int test=0; test < RANDOM_TESTS; ++test) {
for (int i=0; i < TEST_SIZE; ++i) {
subject[i] = randomString(random);
}
System.out.println("Sorting: " + Arrays.toString(subject));
harness = new SortHarness<>(subject.clone());
object = harness.sortObject();
harness.setSize(0);
for (int i=0; i < TEST_SIZE; ++i) {
assertNull(sorter.violation(object, i));
harness.setSize(i+1);
harness.clearStats();
sorter.add(object, i);
int count = 0;
for (int j=0; j < i; ++j) {
if (subject[j].compareTo(subject[i]) <= 0) ++count;
}
assertStatsRange(lo(i,true), harness.getStats(), hi(i,true, count));
}
assertNull(sorter.violation(object, TEST_SIZE));
Arrays.sort(subject);
for (int i=TEST_SIZE-1; i >= 0; --i) {
harness.clearStats();
sorter.remove(object, i);
assertStatsRange(lo(i,false), harness.getStats(), hi(i,false, 0));
assertEquals("Wrong entry for element " + i, subject[i], object.get(i));
harness.setSize(i);
assertNull(sorter.violation(object, i));
}
}
}
}
TEST HEAP SORT
import edu.uwm.cs351.HeapSorter;
import edu.uwm.cs351.Sorter;
public class TestHeapSort extends AbstractTestSort {
protected Sorter getAlgorithm() {
return new HeapSorter<>();
}
@Override
protected int[] lo(int n, boolean isAdd) {
switch(n) {
case 0: return s(0,0,0);
case 1:
if (isAdd) {
return s(1,0,1);
} else {
return s(0,0,0);
}
case 2:
return s(1,0,1);
default:
if (isAdd) {
return s(1,0,1);
} else {
return s(1,0,2);
}
}
}
@Override
protected int[] hi(int n, boolean isAdd, int ni) {
int log = 0;
for (int i=isAdd ? n+1 : n; i > 0; i/=2) {
++log;
}
switch (n) {
case 0:
if (isAdd) {
return s(1,1,0);
} else {
return s(0,0,0);
}
default:
if (isAdd) {
return s(log,log,log-1);
} else {
return s(log*2, log+1, (log-1)*2);
}
}
}
public void testA() {
setUp(42);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
}
public void testB() {
setUp(10,20);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNotNull(algorithm.violation(self, 2));
}
public void testC() {
setUp((a,b) -> b-a, 10, 20);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
}
public void testD() {
setUp(10,20,5);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNotNull(algorithm.violation(self, 2));
assertNotNull(algorithm.violation(self, 3));
}
public void testE() {
setUp(10,5,15);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNotNull(algorithm.violation(self, 3));
}
public void testF() {
setUp((a,b)-> 0, 10,50,1000000);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNull(algorithm.violation(self, 3));
}
public void testG() {
setUp(10,5,7,6,4,5,2,1);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNull(algorithm.violation(self, 3));
assertNotNull(algorithm.violation(self, 4));
assertNotNull(algorithm.violation(self, 5));
assertNotNull(algorithm.violation(self, 6));
assertNotNull(algorithm.violation(self, 7));
assertNotNull(algorithm.violation(self, 8));
}
public void testH() {
setUp(10,10,10,10,10,9,8,7,10,10,10,10,10);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNull(algorithm.violation(self, 3));
assertNull(algorithm.violation(self, 4));
assertNull(algorithm.violation(self, 5));
assertNull(algorithm.violation(self, 6));
assertNull(algorithm.violation(self, 7));
assertNull(algorithm.violation(self, 8));
assertNull(algorithm.violation(self, 9));
assertNull(algorithm.violation(self, 10));
assertNull(algorithm.violation(self, 11));
assertNotNull(algorithm.violation(self, 12));
assertNotNull(algorithm.violation(self, 13));
}
public void testI() {
setUp(100, 70, 40, 50, 60, 15, 35, 45, 55, 11, 13);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNull(algorithm.violation(self, 3));
assertNull(algorithm.violation(self, 4));
assertNull(algorithm.violation(self, 5));
assertNull(algorithm.violation(self, 6));
assertNull(algorithm.violation(self, 7));
assertNull(algorithm.violation(self, 8));
assertNotNull(algorithm.violation(self, 9));
assertNotNull(algorithm.violation(self, 10));
assertNotNull(algorithm.violation(self, 11));
}
public void testJ() {
setUp(100,80,90,60,70,85,75,50,40,65,55,77,82,68,54,42,48,30,35,61,58,51,57,72,63,62,74);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNull(algorithm.violation(self, 3));
assertNull(algorithm.violation(self, 4));
assertNull(algorithm.violation(self, 5));
assertNull(algorithm.violation(self, 6));
assertNull(algorithm.violation(self, 7));
assertNull(algorithm.violation(self, 8));
assertNull(algorithm.violation(self, 9));
assertNull(algorithm.violation(self, 10));
assertNull(algorithm.violation(self, 11));
assertNull(algorithm.violation(self, 12));
assertNull(algorithm.violation(self, 13));
assertNull(algorithm.violation(self, 14));
assertNull(algorithm.violation(self, 15));
assertNull(algorithm.violation(self, 16));
assertNull(algorithm.violation(self, 17));
assertNull(algorithm.violation(self, 18));
assertNull(algorithm.violation(self, 19));
assertNull(algorithm.violation(self, 20));
assertNull(algorithm.violation(self, 21));
assertNull(algorithm.violation(self, 22));
assertNotNull(algorithm.violation(self, 23));
assertNotNull(algorithm.violation(self, 24));
assertNotNull(algorithm.violation(self, 25));
assertNotNull(algorithm.violation(self, 26));
assertNotNull(algorithm.violation(self, 27));
}
}
TEST INSERTION SORT
import edu.uwm.cs351.InsertionSorter;
import edu.uwm.cs351.Sorter;
public class TestInsertionSort extends AbstractTestSort {
protected Sorter getAlgorithm() {
return new InsertionSorter<>();
}
@Override
protected int[] lo(int n, boolean isAdd) {
if (isAdd && n > 0) return s(1,0,1);
return s(0,0,0);
}
@Override
protected int[] hi(int n, boolean isAdd, int ni) {
if (isAdd) return s((n-ni)+2,(n-ni)+1,(n-ni)+1);
return s(0,0,0);
}
public void testA() {
setUp(42);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
}
public void testB() {
setUp(10,20);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
}
public void testC() {
setUp(3,2,6);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNotNull(algorithm.violation(self, 2));
assertNotNull(algorithm.violation(self, 3));
}
public void testD() {
setUp((a,b)->b-a, 3,2,6);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNotNull(algorithm.violation(self, 3));
}
public void testE() {
setUp((a,b)->0, 3,2,6);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNull(algorithm.violation(self, 3));
}
public void testF() {
setUp((a,b) -> a/10 - b/10, 4, 2, 15, 13, 9, 14);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNull(algorithm.violation(self, 3));
assertNull(algorithm.violation(self, 4));
assertNotNull(algorithm.violation(self, 5));
assertNotNull(algorithm.violation(self, 6));
}
public void testG() {
setUp(4, 2, 13, 15, 19, 24, 33);
assertNotNull(algorithm.violation(self, 5));
assertNotNull(algorithm.violation(self, 6));
assertNotNull(algorithm.violation(self, 7));
}
public void testH() {
setUp((a,b)->0, 1, 3, 6, 10, 15, 10, 6, 3, 1);
assertNull(algorithm.violation(self, 5));
assertNull(algorithm.violation(self, 6));
assertNull(algorithm.violation(self, 7));
assertNull(algorithm.violation(self, 8));
assertNull(algorithm.violation(self, 9));
}
public void testI() {
setUp(1, 3, 9, 27, 81, 343, 1029, 3087, 9261);
assertNull(algorithm.violation(self, 5));
assertNull(algorithm.violation(self, 6));
assertNull(algorithm.violation(self, 7));
assertNull(algorithm.violation(self, 8));
assertNull(algorithm.violation(self, 9));
}
public void testJ() {
setUp(1, 4, 16, -64, 256, 1024, 4096, 16384, 65536, 262144);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNull(algorithm.violation(self, 3));
assertNotNull(algorithm.violation(self, 8));
assertNotNull(algorithm.violation(self, 10));
}
}
TEST SELECTION SORT
import edu.uwm.cs351.SelectionSorter;
import edu.uwm.cs351.Sorter;
public class TestSelectionSort extends AbstractTestSort {
protected Sorter getAlgorithm() {
return new SelectionSorter<>();
}
@Override
protected int[] lo(int n, boolean isAdd) {
if (isAdd || n == 0) return s(0,0,0);
return s(n+1,0,n);
}
@Override
protected int[] hi(int n, boolean isAdd, int ni) {
if (isAdd) return s(0,0,0);
return s(n+1,2,n);
}
public void testA() {
setUp(42);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
}
public void testB() {
setUp(10,20);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
}
public void testC() {
setUp(3,2,1);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNull(algorithm.violation(self, 3));
}
public void testD() {
setUp(1,6,3,-19);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNull(algorithm.violation(self, 3));
assertNull(algorithm.violation(self, 4));
}
public void testE() {
setUp(1024,16,32,65536,512);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNull(algorithm.violation(self, 3));
assertNull(algorithm.violation(self, 4));
assertNull(algorithm.violation(self, 5));
}
public void testF() {
setUp(42,42,42,42,42,42);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNull(algorithm.violation(self, 3));
assertNull(algorithm.violation(self, 4));
assertNull(algorithm.violation(self, 5));
assertNull(algorithm.violation(self, 6));
}
public void testG() {
setUp((a,b) -> b-a, 1,2,3,4,3,2,1);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNull(algorithm.violation(self, 3));
assertNull(algorithm.violation(self, 4));
assertNull(algorithm.violation(self, 5));
assertNull(algorithm.violation(self, 6));
assertNull(algorithm.violation(self, 7));
}
public void testH() {
setUp((a,b) -> 0, -587, 110, 1066, 1492, -185, 221, 33);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNull(algorithm.violation(self, 3));
assertNull(algorithm.violation(self, 4));
assertNull(algorithm.violation(self, 5));
assertNull(algorithm.violation(self, 6));
assertNull(algorithm.violation(self, 7));
assertNull(algorithm.violation(self, 8));
}
public void testI() {
setUp(9, -8, 7, -6, 5, -4, 3, -2, 1);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNull(algorithm.violation(self, 3));
assertNull(algorithm.violation(self, 4));
assertNull(algorithm.violation(self, 5));
assertNull(algorithm.violation(self, 6));
assertNull(algorithm.violation(self, 7));
assertNull(algorithm.violation(self, 8));
assertNull(algorithm.violation(self, 9));
}
public void testJ() {
setUp(100,80,90,60,70,85,75,50,40,65,55,77,82,68,54,42,48,30,35,61,58,51,57,72,63,62,74);
assertNull(algorithm.violation(self, 0));
assertNull(algorithm.violation(self, 1));
assertNull(algorithm.violation(self, 2));
assertNull(algorithm.violation(self, 3));
assertNull(algorithm.violation(self, 4));
assertNull(algorithm.violation(self, 5));
assertNull(algorithm.violation(self, 6));
assertNull(algorithm.violation(self, 7));
assertNull(algorithm.violation(self, 8));
assertNull(algorithm.violation(self, 9));
assertNull(algorithm.violation(self, 10));
assertNull(algorithm.violation(self, 11));
assertNull(algorithm.violation(self, 12));
assertNull(algorithm.violation(self, 13));
assertNull(algorithm.violation(self, 14));
assertNull(algorithm.violation(self, 15));
assertNull(algorithm.violation(self, 16));
assertNull(algorithm.violation(self, 17));
assertNull(algorithm.violation(self, 18));
assertNull(algorithm.violation(self, 19));
assertNull(algorithm.violation(self, 20));
assertNull(algorithm.violation(self, 21));
assertNull(algorithm.violation(self, 22));
assertNull(algorithm.violation(self, 23));
assertNull(algorithm.violation(self, 24));
assertNull(algorithm.violation(self, 25));
assertNull(algorithm.violation(self, 26));
assertNull(algorithm.violation(self, 27));
}
}
Related Samples
Discover our Java Assignment Samples for comprehensive solutions to diverse programming challenges. These examples cover core Java concepts, data structures, and algorithms, ensuring clarity and educational value. Ideal for students seeking practical guidance and a deeper understanding of Java programming to excel in their studies.
Java
Java
Java
Java
Java
Java
Java
Java
Java
Java
Java
Java
Java
Java
Java
Java
Java
Java
Java
Java