summaryrefslogtreecommitdiff
path: root/jpl/Test/Test.jpl
diff options
context:
space:
mode:
Diffstat (limited to 'jpl/Test/Test.jpl')
-rw-r--r--jpl/Test/Test.jpl122
1 files changed, 122 insertions, 0 deletions
diff --git a/jpl/Test/Test.jpl b/jpl/Test/Test.jpl
new file mode 100644
index 0000000000..ab6a1ce56d
--- /dev/null
+++ b/jpl/Test/Test.jpl
@@ -0,0 +1,122 @@
+import java.util.*;
+
+public class Test {
+
+ int myint = 123;
+ double mydouble = 3.14159265;
+ String mystring = "my string";
+ static String ourstring = "our string";
+ static boolean embedded = false;
+ int array[] = {1,2,3};
+ Vector v;
+
+ public Test() {
+
+
+ v = new Vector();
+ v.addElement("Hello");
+ printfields();
+ Vector x = perlTryVec(v);
+ x.addElement("World");
+ Vector y = perlTryVec(x);
+ if (!embedded) System.err.println("Thank you, perlTryVec!");
+
+ if (!embedded) System.err.println(retchars());
+ if (!embedded) System.err.println("Thank you, retchars!");
+
+ String[] s = retstrings();
+ if (!embedded) System.err.println(s[0] + s[1] + s[2] + s[3]);
+ if (!embedded) System.err.println("Thank you, retstrings!");
+
+ Object[] o = retobjects(v, x, y);
+ if (!embedded) System.err.println(o[1]);
+ if (!embedded) System.err.println(o[3]);
+ if (!embedded) System.err.println(o[4]);
+ if (!embedded) System.err.println("Thank you, retobjects!");
+
+ passarray(s);
+
+ if (!embedded) System.err.println(s[0] + s[1] + s[2] + s[3]);
+ if (!embedded) System.err.println("Thank you, passarray!");
+
+ printfields();
+ if (!embedded) System.err.println("Thank you, printfields!");
+ setfields();
+ if (!embedded) System.err.println("Thank you, setfields!");
+ printfields();
+ if (!embedded) System.err.println("Thank you, printfields!");
+ }
+
+ perl Vector perlTryVec(Vector v) throws RuntimeException {{
+ print "v is: $v\n";
+ print "v isa: ", ref $v,"\n";
+
+ print "In perlTryVec() - Vector size is: ", $v->size([],['int']), "\n";
+ @foo = times;
+ $size ||= getmeth('size', [], ['int']);
+ for ($i = 10000; $i; --$i) {
+ $x = $v->$size();
+ }
+ @bar = times;
+ printf "%5.2fu %5.2fs\n", $bar[0] - $foo[0], $bar[1] - $foo[1];
+ return $v;
+ }}
+
+ perl char[] retchars() {{
+ print "In retchars()\n";
+ return [65,66,67];
+ }}
+
+ perl String[] retstrings() {{
+ print "In retstrings()\n";
+ return [1,2,3,"many"];
+ }}
+
+ perl Object[] retobjects(Vector v, Vector x, Vector y) {{
+ print "In retstrings()\n";
+ return [$v, $x, $y, "this is only a test", 123];
+ }}
+
+ perl void passarray(String[] s) {{
+ print "In passarray()\n";
+ print "s = $s\n";
+ $t = GetObjectArrayElement($s,3);
+ print "t = $t\n";
+ $x = GetStringUTFChars($t);
+ print "$x\n";
+ $t = SetObjectArrayElement($s,3,NewStringUTF("infinity"));
+ }}
+
+ perl void printfields() {{
+
+ $| = 1;
+ eval {print $self->v->toString____s(), "\n";};
+ print $@ if $@;
+
+ print $self->myint, "\n";
+ print $self->mydouble, "\n";
+ print $self->mystring, "\n";
+ print JPL::Test->ourstring, "\n";
+
+ @nums = GetIntArrayElements($self->array());
+ print "@nums\n";
+
+ @nums = unpack("i*", scalar GetIntArrayElements($self->array()));
+ print "@nums\n";
+ }}
+
+ perl void setfields() {{
+ $self->myint(321);
+ $self->mydouble(2.7182918);
+ $self->mystring("MY STRING!!!");
+ JPL::Test->ourstring("OUR STRING!!!");
+ }}
+
+ public static void main(String[] argv) {
+ if (java.lang.reflect.Array.getLength(argv) > 0 &&
+ argv[0].equals("-nothanks"))
+ embedded = true;
+ Test f = new Test();
+ if (!embedded) System.err.println("Thank you, Test!");
+ }
+}