mirror of https://github.com/swig/swig
184 lines
5.4 KiB
Java
184 lines
5.4 KiB
Java
import li_std_vector.*;
|
|
|
|
public class li_std_vector_runme {
|
|
|
|
static {
|
|
try {
|
|
System.loadLibrary("li_std_vector");
|
|
} catch (UnsatisfiedLinkError e) {
|
|
System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
|
|
System.exit(1);
|
|
}
|
|
}
|
|
|
|
public static void checkThat(boolean mustBeTrue) throws Throwable {
|
|
if (!mustBeTrue) {
|
|
// Index [2], since this function is one hop away from main, and [1] is the current method.
|
|
throw new RuntimeException("Test failed at line number " + Thread.currentThread().getStackTrace()[2].getLineNumber());
|
|
}
|
|
}
|
|
|
|
public static void main(String argv[]) throws Throwable
|
|
{
|
|
IntVector v1 = li_std_vector.vecintptr(new IntVector());
|
|
IntPtrVector v2 = li_std_vector.vecintptr(new IntPtrVector());
|
|
IntConstPtrVector v3 = li_std_vector.vecintconstptr(new IntConstPtrVector());
|
|
|
|
checkThat(v1.isEmpty());
|
|
checkThat(v1.size() == 0);
|
|
checkThat(v1.add(123));
|
|
checkThat(v1.size() == 1);
|
|
checkThat(!v1.isEmpty());
|
|
|
|
int sum = 0;
|
|
for (int n : v1) {
|
|
checkThat(n == 123);
|
|
sum += n;
|
|
}
|
|
checkThat(sum == 123);
|
|
checkThat(v1.get(0) == 123);
|
|
v1.clear();
|
|
checkThat(v1.isEmpty());
|
|
v1.add(123);
|
|
|
|
checkThat(v1.set(0, 456) == 123);
|
|
checkThat(v1.size() == 1);
|
|
checkThat(v1.get(0) == 456);
|
|
|
|
java.util.Iterator<Integer> v1_iterator = v1.iterator();
|
|
checkThat(v1_iterator.hasNext());
|
|
checkThat(v1_iterator.next() == 456);
|
|
checkThat(!v1_iterator.hasNext());
|
|
try {
|
|
v1_iterator.next();
|
|
checkThat(false);
|
|
} catch (java.util.NoSuchElementException e) {
|
|
}
|
|
|
|
checkThat(!v1.remove(Integer.valueOf(123)));
|
|
checkThat(v1.remove(Integer.valueOf(456)));
|
|
checkThat(v1.isEmpty());
|
|
checkThat(v1.size() == 0);
|
|
checkThat(!v1.remove(Integer.valueOf(456)));
|
|
|
|
checkThat(new IntVector(3, 0).size() == 3);
|
|
for (int n : new IntVector(10, 999))
|
|
checkThat(n == 999);
|
|
for (int n : new IntVector(new IntVector(10, 999)))
|
|
checkThat(n == 999);
|
|
|
|
StructVector v4 = li_std_vector.vecstruct(new StructVector());
|
|
StructPtrVector v5 = li_std_vector.vecstructptr(new StructPtrVector());
|
|
StructConstPtrVector v6 = li_std_vector.vecstructconstptr(new StructConstPtrVector());
|
|
|
|
v4.add(new Struct(12));
|
|
v5.add(new Struct(34));
|
|
v6.add(new Struct(56));
|
|
|
|
checkThat(v4.get(0).getNum() == 12);
|
|
checkThat(v5.get(0).getNum() == 34);
|
|
checkThat(v6.get(0).getNum() == 56);
|
|
|
|
for (Struct s : v4) {
|
|
checkThat(s.getNum() == 12);
|
|
}
|
|
for (Struct s : v5) {
|
|
checkThat(s.getNum() == 34);
|
|
}
|
|
for (Struct s : v6) {
|
|
checkThat(s.getNum() == 56);
|
|
}
|
|
|
|
StructVector v7 = li_std_vector.vecstruct(new StructVector());
|
|
v7.add(new Struct(1));
|
|
v7.add(new Struct(23));
|
|
v7.add(new Struct(456));
|
|
v7.add(new Struct(7890));
|
|
checkThat(v7.size() == 4);
|
|
{
|
|
double[] a7 = {1, 23, 456, 7890};
|
|
int i7 = 0;
|
|
for (Struct s7 : v7) {
|
|
checkThat(s7.getNum() == a7[i7]);
|
|
i7++;
|
|
}
|
|
checkThat(i7 == a7.length);
|
|
}
|
|
checkThat(v7.remove(2).getNum() == 456);
|
|
{
|
|
double[] a7 = {1, 23, 7890};
|
|
int i7 = 0;
|
|
for (Struct s7 : v7) {
|
|
checkThat(s7.getNum() == a7[i7]);
|
|
i7++;
|
|
}
|
|
checkThat(i7 == a7.length);
|
|
}
|
|
v7.add(1, new Struct(123));
|
|
{
|
|
double[] a7 = {1, 123, 23, 7890};
|
|
int i7 = 0;
|
|
for (Struct s7 : v7) {
|
|
checkThat(s7.getNum() == a7[i7]);
|
|
i7++;
|
|
}
|
|
checkThat(i7 == a7.length);
|
|
}
|
|
|
|
BoolVector v8 = new BoolVector();
|
|
checkThat(v8.add(true));
|
|
checkThat(v8.get(0) == true);
|
|
checkThat(v8.set(0, false) == true);
|
|
checkThat(v8.set(0, false) == false);
|
|
checkThat(v8.size() == 1);
|
|
|
|
java.util.ArrayList<Boolean> bl = new java.util.ArrayList<Boolean>(java.util.Arrays.asList(true, false, true, false));
|
|
BoolVector bv = new BoolVector(java.util.Arrays.asList(true, false, true, false));
|
|
BoolVector bv2 = new BoolVector(bl);
|
|
java.util.ArrayList<Boolean> bl2 = new java.util.ArrayList<Boolean>(bv);
|
|
boolean bbb1 = bv.get(0);
|
|
Boolean bbb2 = bv.get(0);
|
|
|
|
IntVector v9 = new IntVector(java.util.Arrays.asList(10, 20, 30, 40));
|
|
v9.add(50);
|
|
v9.add(60);
|
|
v9.add(70);
|
|
checkThat(v9.size() == 7);
|
|
checkThat(v9.remove(Integer.valueOf(60)));
|
|
checkThat(v9.size() == 6);
|
|
|
|
IntVector v10 = new IntVector(java.util.Arrays.asList(10, 20, 30, 40, 50));
|
|
v10.subList(1, 4).clear(); // Recommended way to call protected method removeRange(1,3)
|
|
checkThat(v10.size() == 2);
|
|
checkThat(v10.get(0) == 10);
|
|
checkThat(v10.get(1) == 50);
|
|
v10.addAll(1, java.util.Arrays.asList(22, 33));
|
|
checkThat(v10.size() == 4);
|
|
checkThat(v10.get(1) == 22);
|
|
checkThat(v10.get(2) == 33);
|
|
|
|
v10.add(v10.size(), 55);
|
|
checkThat(v10.size() == 5);
|
|
checkThat(v10.get(4) == 55);
|
|
|
|
IntVector v11 = new IntVector(java.util.Arrays.asList(11, 22, 33, 44));
|
|
v11.listIterator(0);
|
|
v11.listIterator(v11.size());
|
|
try {
|
|
v11.listIterator(v11.size() + 1);
|
|
checkThat(false);
|
|
} catch (IndexOutOfBoundsException e) {
|
|
}
|
|
try {
|
|
v11.listIterator(-1);
|
|
checkThat(false);
|
|
} catch (IndexOutOfBoundsException e) {
|
|
}
|
|
|
|
IntVector arrayInit = new IntVector(new int[]{1, 2, 3, 4, 5});
|
|
checkThat(arrayInit.size() == 5);
|
|
checkThat(arrayInit.get(0) == 1);
|
|
checkThat(arrayInit.get(4) == 5);
|
|
}
|
|
}
|