/** * Test that the most specific classification is used when a group of intermediate specificity is * queried. */ @Test public void testOverriddenIndirectSuperclass() { classifier.addClass(Room.BATHROOM, Arrays.asList(Creature.BIRD)); classifier.addClass(Room.BEDROOM, Arrays.asList(Creature.GREENFINCH)); Assert.assertEquals(classifier.getClass(Creature.BIRD), Room.BATHROOM); Assert.assertEquals(classifier.getClass(Creature.FINCH), Room.BATHROOM); Assert.assertEquals(classifier.getClass(Creature.GREENFINCH), Room.BEDROOM); }
/** Test that an unknown group is not classified. */ @Test public void testUnknown() { Assert.assertNull(classifier.getClass(Creature.LEVIATHAN)); }
/** Test a more complex classification scenario. */ @Test public void testComplex() { classifier.addClass( Room.KITCHEN, Arrays.asList(Creature.MAMMAL, Creature.DACHSHUND, Creature.HAKE)); classifier.addClass(Room.BEDROOM, Arrays.asList(Creature.FISH, Creature.DOG)); classifier.addClass(Room.DRAWING_ROOM, Arrays.asList(Creature.FINCH, Creature.LEVIATHAN)); classifier.addClass(Room.BATHROOM, Arrays.asList(Creature.BIRD)); Assert.assertEquals(classifier.getClass(Creature.MAMMAL), Room.KITCHEN); Assert.assertEquals(classifier.getClass(Creature.CAT), Room.KITCHEN); Assert.assertEquals(classifier.getClass(Creature.DOG), Room.BEDROOM); Assert.assertEquals(classifier.getClass(Creature.DACHSHUND), Room.KITCHEN); Assert.assertEquals(classifier.getClass(Creature.FISH), Room.BEDROOM); Assert.assertEquals(classifier.getClass(Creature.COD), Room.BEDROOM); Assert.assertEquals(classifier.getClass(Creature.HAKE), Room.KITCHEN); Assert.assertEquals(classifier.getClass(Creature.BIRD), Room.BATHROOM); Assert.assertEquals(classifier.getClass(Creature.FINCH), Room.DRAWING_ROOM); Assert.assertEquals(classifier.getClass(Creature.GREENFINCH), Room.DRAWING_ROOM); Assert.assertEquals(classifier.getClass(Creature.MAGPIE), Room.BATHROOM); Assert.assertEquals(classifier.getClass(Creature.LEVIATHAN), Room.DRAWING_ROOM); }
/** Test that different classifications may not be asserted for a group. */ @Test(expectedExceptions = IllegalArgumentException.class) public void testSameInconsistent() { classifier.addClass(Room.KITCHEN, Arrays.asList(Creature.COD)); classifier.addClass(Room.BATHROOM, Arrays.asList(Creature.COD)); }
/** Test that the same classification may be asserted repeatedly for a group. */ @Test public void testSameConsistent() { classifier.addClass(Room.KITCHEN, Arrays.asList(Creature.COD)); classifier.addClass(Room.KITCHEN, Arrays.asList(Creature.COD)); Assert.assertEquals(classifier.getClass(Creature.COD), Room.KITCHEN); }
/** Test that classification succeeds when a subclass of the known group is queried. */ @Test public void testSuperclass() { classifier.addClass(Room.DRAWING_ROOM, Arrays.asList(Creature.BIRD)); Assert.assertEquals(classifier.getClass(Creature.FINCH), Room.DRAWING_ROOM); }