@AfterGroups({ "MaxHeapCharacters" })
	@Test(groups = { "MinHeapCharacters" })
	public void testMinHeapCharPushPop() {
		Reporter.log("[ ** MinHeap Character Push ** ]\n");

		testQueueChar = new MinPriorityQueue<>(new Character[seed], true);

		try {

			Reporter.log("Insertion : \n");
			timeKeeper = System.currentTimeMillis();

			for (Integer i = 0; i < seed; i++) {
				testQueueChar.push(shuffledArrayWithDuplicatesChar[i]);
			}

			Reporter.log((System.currentTimeMillis() - timeKeeper) + " ms\n");

		} catch (CollectionOverflowException e) {
			throw new TestException("MinHeap Insertion Failed!!!");
		}

		try {
			testQueueChar.push('a');
		} catch (CollectionOverflowException e) {
			Reporter.log("**Overflow Exception caught -- Passed.\n");
		}

		Reporter.log("[ ** MinHeap Character Pop ** ]\n");
		try {

			Reporter.log("Deletion : \n");
			timeKeeper = System.currentTimeMillis();

			for (Integer i = 0; i < seed; i++) {
				testQueueChar.pop();
			}

			Reporter.log((System.currentTimeMillis() - timeKeeper) + " ms\n");

		} catch (EmptyCollectionException e) {
			throw new TestException("MinHeap Removal Failed!!!");
		}

		try {
			testQueueChar.pop();
		} catch (EmptyCollectionException e) {
			Reporter.log("**Empty Exception caught -- Passed.\n");
		}
	}