@Test
	public void getMatrixElementThroughReference() {
		Context context = new Context();
		DataFactory factory = new DataFactory();
		IVPVariable var = factory.createIVPVariable();
		IVPMatrix vect = factory.createIVPMatrix();
		AttributionLine attLine = factory.createAttributionLine();
		IVPMatrixReference ref = factory.createIVPMatrixReference();

		IVPNumber line = factory.createIVPNumber();
		line.setValueType(IVPValue.INTEGER_TYPE);
		context.addInt(line.getUniqueID(), 0);

		IVPNumber column = factory.createIVPNumber();
		column.setValueType(IVPValue.INTEGER_TYPE);
		context.addInt(column.getUniqueID(), 0);

		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(), size.getUniqueID(), context);
		vect.setType(IVPValue.INTEGER_TYPE);

		vect.addElement(line.getUniqueID(), column.getUniqueID(), context, 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);
		map.put(line.getUniqueID(), line);
		map.put(column.getUniqueID(), column);

		ref.setMatrixID(vect.getUniqueID());
		ref.setColID(column.getUniqueID());
		ref.setLinID(line.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);
	}