public void testLocationConstructor(){
        try{
            try{
                Location location = new Location(-1, 0);
                assertTrue(false);
            }catch(AssertionError e){
                assertTrue(true);
            };

            try{
                Location location = new Location(0, -1);
                assertTrue(false);
            }catch(AssertionError e){
                assertTrue(true);
            };

            try{
                Location location = new Location(-1, -1);
                assertTrue(false);
            }catch(AssertionError e){
                assertTrue(true);
            };

            try{
                Location location = new Location(-111, -1);
                assertTrue(false);
            }catch(AssertionError e){
                assertTrue(true);
            };

            try{
                Location location = new Location(-11, -1111);
                assertTrue(false);
            }catch(AssertionError e){
                assertTrue(true);
            };

            try{
                Location location = new Location(-111111, -1111);
                assertTrue(false);
            }catch(AssertionError e){
                assertTrue(true);
            };

            Location location = new Location(0,0);
            assertTrue(location.getPredicateIndex() == 0);
            assertTrue(location.getLocationInPredicate() == 0);
            assertTrue(location.hashCode() == 0);

            location = new Location(1,1);
            assertTrue(location.getPredicateIndex() == 1);
            assertTrue(location.getLocationInPredicate() == 1);
            assertTrue(location.hashCode() == 74);

            location = new Location(0,1);
            assertTrue(location.getPredicateIndex() == 0);
            assertTrue(location.getLocationInPredicate() == 1);
            assertTrue(location.hashCode() == 1);

            location = new Location(1,0);
            assertTrue(location.getPredicateIndex() == 1);
            assertTrue(location.getLocationInPredicate() == 0);
            assertTrue(location.hashCode() == 73);

            location = new Location(10,1);
            assertTrue(location.getPredicateIndex() == 10);
            assertTrue(location.getLocationInPredicate() == 1);
            assertTrue(location.hashCode() == 731);

            location = new Location(1,10);
            assertTrue(location.getPredicateIndex() == 1);
            assertTrue(location.getLocationInPredicate() == 10);
            assertTrue(location.hashCode() == 83);

            location = new Location(5,10);
            assertTrue(location.getPredicateIndex() == 5);
            assertTrue(location.getLocationInPredicate() == 10);
            assertTrue(location.hashCode() == 375);
        }catch(AssertionError e){
            System.out.println(
                "ERROR in LocationTest.testLocationConstructor\n" +
                "    should not get here.\n" +
                "    error = " + e.getMessage());
        };
    }