public void testAddLocationForAndGetLocationsFor(){
    	try{
            Identifier var1 = new Identifier("A", 1);
            Identifier var2 = new Identifier("B", 1);

            Location loc1 = new Location(0,0);
            Location loc2 = new Location(0,1);
            Location loc3 = new Location(0,2);
            Location loc4 = new Location(1,0);
            Location loc5 = new Location(1,1);
            Location loc6 = new Location(1,2);
            
            VariableInformation v = new VariableInformation();

            try{
                v.addLocationFor(var1, null);
                assertTrue(false);
            }catch(AssertionError e){
                assertTrue(true);
            };

            try{
                v.addLocationFor(null, loc1);
                assertTrue(false);
            }catch(AssertionError e){
                assertTrue(true);
            };

            try{
                v.addLocationFor(null, null);
                assertTrue(false);
            }catch(AssertionError e){
                assertTrue(true);
            };

            try{
                v.getLocationsFor(null);
                assertTrue(false);
            }catch(AssertionError e){
                assertTrue(true);
            };

            assertTrue(v.getLocationsFor(var1) == null);

            v.addLocationFor(var1, loc1);
            Iterator<Location> iter = v.getLocationsFor(var1);
            assertTrue(iter.hasNext());
            assertTrue(iter.next() == loc1);
            assertFalse(iter.hasNext());

            assertTrue(v.getLocationsFor(var2) == null);

            v.addLocationFor(var1, loc2);
            v.addLocationFor(var1, loc3);
            HashSet<Location> set = new HashSet<Location>();
            iter = v.getLocationsFor(var1);
            while(iter.hasNext()){
               set.add(iter.next());
            };
            assertTrue(set.size() == 3);
            assertTrue(set.contains(loc1));
            assertTrue(set.contains(loc2));
            assertTrue(set.contains(loc3));

            assertTrue(v.getLocationsFor(var2) == null);

            v.addLocationFor(var2, loc4);
            set = new HashSet<Location>();
            iter = v.getLocationsFor(var1);
            while(iter.hasNext()){
               set.add(iter.next());
            };
            assertTrue(set.size() == 3);
            assertTrue(set.contains(loc1));
            assertTrue(set.contains(loc2));
            assertTrue(set.contains(loc3));
            iter = v.getLocationsFor(var2);
            assertTrue(iter.hasNext());
            assertTrue(iter.next() == loc4);
            assertFalse(iter.hasNext());

            v.addLocationFor(var2, loc5);
            v.addLocationFor(var2, loc6);
            set = new HashSet<Location>();
            iter = v.getLocationsFor(var1);
            while(iter.hasNext()){
               set.add(iter.next());
            };
            assertTrue(set.size() == 3);
            assertTrue(set.contains(loc1));
            assertTrue(set.contains(loc2));
            assertTrue(set.contains(loc3));
            set = new HashSet<Location>();
            iter = v.getLocationsFor(var2);
            while(iter.hasNext()){
               set.add(iter.next());
            };
            assertTrue(set.size() == 3);
            assertTrue(set.contains(loc4));
            assertTrue(set.contains(loc5));
            assertTrue(set.contains(loc6));
        }catch(ParserException e){
             System.out.println(
                 "ERROR: in VariableInformationTest::" +
                 "testAddLocationForAndGetLocationFor()\n" +
                 e.getMessage());
        };
    };