Subversion Repositories mkgmap

Rev

Rev 2008 | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

/*
 * Copyright (C) 2011.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 3 or
 * version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 */


package uk.me.parabola.imgfmt.app.srt;

import org.junit.Test;

import static org.junit.Assert.*;

public class CombinedSortKeyTest {

        private static final String HELLO1 = "hello1";

        @Test
        public void testGetObject() {
                IntegerSortKey<String> k1 = new IntegerSortKey<String>(HELLO1, 1, 1);
                CombinedSortKey<String> ck1 = new CombinedSortKey<String>(k1, 2, 2);

                assertEquals("retrieve original object", HELLO1, ck1.getObject());
        }

        @Test
        public void testCompletelyEqual() {
                IntegerSortKey<String> k1 = new IntegerSortKey<String>(HELLO1, 1, 1);
                CombinedSortKey<String> ck1 = new CombinedSortKey<String>(k1, 2, 2);
                CombinedSortKey<String> ck2 = new CombinedSortKey<String>(k1, 2, 2);

                assertEquals(0, ck1.compareTo(ck2));
        }

        @Test
        public void testDifferentKey() {
                IntegerSortKey<String> k1 = new IntegerSortKey<String>(HELLO1, 1, 1);
                IntegerSortKey<String> k2 = new IntegerSortKey<String>(HELLO1, 1, 2);
                CombinedSortKey<String> ck1 = new CombinedSortKey<String>(k1, 2, 2);
                CombinedSortKey<String> ck2 = new CombinedSortKey<String>(k2, 2, 2);

                assertEquals(-1, k1.compareTo(k2));

                assertEquals(-1, ck1.compareTo(ck2));
                assertEquals(1, ck2.compareTo(ck1));
        }

        @Test
        public void testDifferentFirst() {
                IntegerSortKey<String> k1 = new IntegerSortKey<String>(HELLO1, 1, 1);
                IntegerSortKey<String> k2 = new IntegerSortKey<String>(HELLO1, 1, 1);
                CombinedSortKey<String> ck1 = new CombinedSortKey<String>(k1, 2, 2);
                CombinedSortKey<String> ck2 = new CombinedSortKey<String>(k2, 3, 2);

                assertEquals(0, k1.compareTo(k2));

                assertEquals(-1, ck1.compareTo(ck2));
                assertEquals(1, ck2.compareTo(ck1));
        }

        @Test
        public void testDifferentSecond() {
                IntegerSortKey<String> k1 = new IntegerSortKey<String>(HELLO1, 1, 1);
                IntegerSortKey<String> k2 = new IntegerSortKey<String>(HELLO1, 1, 1);
                CombinedSortKey<String> ck1 = new CombinedSortKey<String>(k1, 2, 2);
                CombinedSortKey<String> ck2 = new CombinedSortKey<String>(k2, 2, 3);

                assertEquals(0, k1.compareTo(k2));

                assertEquals(-1, ck1.compareTo(ck2));
                assertEquals(1, ck2.compareTo(ck1));
        }

        @Test
        public void testKeyOverridesFirst() {
                IntegerSortKey<String> k1 = new IntegerSortKey<String>(HELLO1, 1, 1);
                IntegerSortKey<String> k2 = new IntegerSortKey<String>(HELLO1, 2, 1);
                CombinedSortKey<String> ck1 = new CombinedSortKey<String>(k1, 3, 2);
                CombinedSortKey<String> ck2 = new CombinedSortKey<String>(k2, 2, 2);

                assertEquals(-1, k1.compareTo(k2));

                assertEquals(-1, ck1.compareTo(ck2));
                assertEquals(1, ck2.compareTo(ck1));
        }

        @Test
        public void testPrimaryOverridesSecond() {
                IntegerSortKey<String> k1 = new IntegerSortKey<String>(HELLO1, 1, 1);
                IntegerSortKey<String> k2 = new IntegerSortKey<String>(HELLO1, 1, 1);
                CombinedSortKey<String> ck1 = new CombinedSortKey<String>(k1, 2, 3);
                CombinedSortKey<String> ck2 = new CombinedSortKey<String>(k2, 3, 2);

                assertEquals(0, k1.compareTo(k2));

                assertEquals(-1, ck1.compareTo(ck2));
                assertEquals(1, ck2.compareTo(ck1));
        }
}