private void validateRangeValues(Set<Byte> values, int range1, int range2, boolean inverted) {
		if (inverted) {
			if (range1 > range2) {
				for (int value = 0; value < range2; value++) {
					Byte b = Byte.valueOf((byte) value);
					assertTrue("Byte is in range " + range1 + ":" + range2, values.contains(b));
					values.remove(b);
				}
				for (int value = range1 + 1; value < 256; value++) {
					Byte b = Byte.valueOf((byte) value);
					assertTrue("Byte is in range " + range1 + ":" + range2, values.contains(b));
					values.remove(b);
				}
				assertTrue("No more bytes in values set", values.isEmpty());				
			} else {
				for (int value = 0; value < range1; value++) {
					Byte b = Byte.valueOf((byte) value);
					assertTrue("Byte is in range " + range1 + ":" + range2, values.contains(b));
					values.remove(b);
				}
				for (int value = range2 + 1; value < 256; value++) {
					Byte b = Byte.valueOf((byte) value);
					assertTrue("Byte is in range " + range1 + ":" + range2, values.contains(b));
					values.remove(b);
				}
				assertTrue("No more bytes in values set", values.isEmpty());
			}
		} else {
			if (range1 > range2) {
				for (int value = range2; value <= range1; value++) {
					Byte b = Byte.valueOf((byte) value);
					assertTrue("Byte is in range " + range1 + ":" + range2, values.contains(b));
					values.remove(b);
				}
				assertTrue("No more bytes in values set", values.isEmpty());
			} else {
				for (int value = range1; value <= range2; value++) {
					Byte b = Byte.valueOf((byte) value);
					assertTrue("Byte is in range " + range1 + ":" + range2, values.contains(b));
					values.remove(b);
				}
				assertTrue("No more bytes in values set", values.isEmpty());
			}
		}
	}