@Override
    public int compare(QueueItem<?> queueItem1, QueueItem<?> queueItem2) {
        if (queueItem1.getPriority() < queueItem2.getPriority()) {
            return -1;
        } else if (queueItem1.getPriority() > queueItem2.getPriority()) {
            return 1;
        }
        return 0;
    }
@Test
    public void compareTest() {
        for (int tileSize : TILE_SIZES) {
            Tile tile1 = new Tile(0, 0, (byte) 1, tileSize);
            Tile tile2 = new Tile(0, 0, (byte) 2, tileSize);

            QueueItem<?> queueItem1 = new QueueItem<Job>(new Job(tile1, false));
            QueueItem<?> queueItem2 = new QueueItem<Job>(new Job(tile2, false));

            QueueItemComparator queueItemComparator = QueueItemComparator.INSTANCE;
            Assert.assertEquals(0, queueItemComparator.compare(queueItem1, queueItem2), 0);

            queueItem1.setPriority(1);
            queueItem2.setPriority(2);
            Assert.assertTrue(queueItemComparator.compare(queueItem1, queueItem2) < 0);
            Assert.assertTrue(queueItemComparator.compare(queueItem2, queueItem1) > 0);
        }
    }