@Test
	public void getVectorElementThroughReference() {
		Context context = new Context();
		DataFactory factory = new DataFactory();
		IVPVariable var = factory.createIVPVariable();
		IVPVector vect = factory.createIVPVector();
		AttributionLine attLine = factory.createAttributionLine();
		IVPVectorReference ref = factory.createIVPVectorReference();

		IVPNumber n1 = factory.createIVPNumber();
		n1.setValueType(IVPValue.INTEGER_TYPE);
		context.addInt(n1.getUniqueID(), 1);

		IVPNumber position = factory.createIVPNumber();
		position.setValueType(IVPValue.INTEGER_TYPE);
		context.addInt(position.getUniqueID(), 2);

		IVPNumber size = factory.createIVPNumber();
		size.setValueType(IVPValue.INTEGER_TYPE);
		context.addInt(size.getUniqueID(), 10);

		var.setValueID(n1.getUniqueID());
		var.setVariableType(IVPValue.INTEGER_TYPE);

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

		vect.add(2, n1.getUniqueID());

		HashMap map = new HashMap();
		map.put(n1.getUniqueID(), n1);
		map.put(position.getUniqueID(), position);
		map.put(ref.getUniqueID(), ref);
		map.put(vect.getUniqueID(), vect);
		map.put(var.getUniqueID(), var);

		ref.setVectorID(vect.getUniqueID());
		ref.setPositionID(position.getUniqueID());

		attLine.setVariable(var.getUniqueID());
		attLine.setExpression(ref.getUniqueID());

		IVPNumber result = (IVPNumber) var.evaluate(context, map, factory);

		assertTrue(context.getInt(result.getUniqueID()) == 1);
		n1.updateIntegerValue(context, 3);
		attLine.evaluate(context, map, factory);
		result = (IVPNumber) var.evaluate(context, map, factory);
		assertTrue(context.getInt(result.getUniqueID()) == 3);
	}