The previous order, insert(element, index), was counter-intuitive. I'm not aware of any list API that uses this order. I've checked: * Ruby Array.insert(index, obj...) * JavaScript array.splice(start, deleteCount[, item1[, item2[, ...]]]) * C++ / QList::insert(int i, const T & value) * C++ / std::vector::insert * Lua table.insert (list, [pos,] value) * C# List<T>.Insert(int index, T item) * Java Interface List<E>.add(int index, E element) * Python list.insert(i, x) So it seemed to me more like an oversight in Wren.
This contains the automated validation suite for the VM and built-in libraries.
-
benchmark/- Performance tests. These aren't strictly pass/fail, but let us compare performance both against other languages and against previous builds of Wren itself. -
core/- Tests for the built in core library, mainly methods on the core classes. If a bug is inwren_core.corwren_value.c, it will most likely break one of these tests. -
io/- Tests for the built in IO library. In other words, methods on theIOclass. If a bug is inwren_io.c, it should break one of these tests. -
language/- Tests of the language itself, its grammar and runtime semantics. If a bug is inwren_compiler.corwren_vm.c, it will most likely break one of these tests. This includes tests for the syntax for the literal forms of the core classes. -
limit/- Tests for various hardcoded limits. The language doesn't officially specify these limits, but the Wren implementation has them. These tests ensure that limit behavior is well-defined and tested.