@Test
	public void removeFromAPopulatedVector() {
		Context context = new Context();
		DataFactory factory = new DataFactory();
		IVPNumber a = factory.createIVPNumber();
		IVPNumber b = factory.createIVPNumber();
		IVPNumber c = factory.createIVPNumber();
		IVPVector vect = factory.createIVPVector();
		IVPNumber size = factory.createIVPNumber();
		IVPNumber one = factory.createIVPNumber();
		IVPNumber index = factory.createIVPNumber();

		a.setValueType(IVPValue.INTEGER_TYPE);
		b.setValueType(IVPValue.INTEGER_TYPE);
		c.setValueType(IVPValue.INTEGER_TYPE);
		size.setValueType(IVPValue.INTEGER_TYPE);
		one.setValueType(IVPValue.INTEGER_TYPE);
		index.setValueType(IVPValue.INTEGER_TYPE);

		context.addInt(one.getUniqueID(), 1);
		context.addInt(a.getUniqueID(), 3);
		context.addInt(b.getUniqueID(), 10);
		context.addInt(c.getUniqueID(), 2);
		context.addInt(size.getUniqueID(),10);
		context.addInt(index.getUniqueID(), 0);

		vect.setSize(size.getUniqueID(), context);
		vect.setType(IVPValue.INTEGER_TYPE);

		vect.add(0, a.getUniqueID());
		vect.add(1, b.getUniqueID());
		vect.add(2, c.getUniqueID());

		HashMap map = new HashMap();
		map.put(a.getUniqueID(), a);
		map.put(b.getUniqueID(), b);
		map.put(c.getUniqueID(), c);
		map.put(one.getUniqueID(), one);
		map.put(vect.getUniqueID(), vect);
		map.put(index.getUniqueID(), index);

		assertTrue(vect.getType().equals(IVPValue.INTEGER_TYPE));
		assertTrue(context.getInt(vect.getSize()) == 10);
		assertFalse(context.getBoolean(vect.isEmpty(factory, context, map)));

		IVPNumber result1 = (IVPNumber) map.get(vect.get(index.getUniqueID(), context));
		index.updateIntegerValue(context, 1);
		IVPNumber result2 = (IVPNumber) map.get(vect.get(index.getUniqueID(), context));
		index.updateIntegerValue(context, 2);
		IVPNumber result3 = (IVPNumber) map.get(vect.get(index.getUniqueID(), context));

		assertTrue(context.getInt(result1.getUniqueID()) == 3);
		assertTrue(context.getInt(result2.getUniqueID()) == 10);
		assertTrue(context.getInt(result3.getUniqueID()) == 2);

		String removed = vect.remove(one.getUniqueID(), context);
		index.updateIntegerValue(context, 1);
		assertTrue(removed.equals(b.getUniqueID()));
		assertTrue(vect.get(index.getUniqueID(), context).equals(IVPValue.NULL));
	}