/** * Test for array access. Creates a {@link TruffleObject} around a Java array, fills it with * integers and asks the language to add one to each of the array elements. * * @since 0.14 */ @Test public void addOneToAnArrayElement() throws Exception { String id = addToArray(); if (id == null) { return; } PolyglotEngine.Value add = findGlobalSymbol(id); Number[] arr = new Number[10]; for (int i = 0; i < arr.length; i++) { arr[i] = i; } TruffleObject truffleArr = JavaInterop.asTruffleObject(arr); int index = RANDOM.nextInt(arr.length - 1); add.execute(truffleArr, index, 1); final Number valueAtIndex = arr[index]; final Number valueAfterIndex = arr[index + 1]; assertNotNull("Non-null value expected at index " + index, valueAtIndex); assertNotNull("Non-null value expected at index " + (index + 1), valueAfterIndex); assertEquals("Expecting same value at both indexes", valueAtIndex.intValue(), valueAfterIndex.intValue()); }