changeset 23681:8b5bc5e5f74b

add unit tests creating and calling methods on some basic Java types * ov-java.cc: Add %!tests for instantiating and calling methods on basic Java numeric classes, Boolean class, and AWT Frame class.
author Philip Nienhuis <prnienhuis@users.sf.net>
date Thu, 22 Jun 2017 19:38:58 -0700
parents ef71711f6d64
children 6fe13cd3543c
files libinterp/octave-value/ov-java.cc
diffstat 1 files changed, 54 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/octave-value/ov-java.cc	Thu Jun 22 16:23:36 2017 -0400
+++ b/libinterp/octave-value/ov-java.cc	Thu Jun 22 19:38:58 2017 -0700
@@ -3233,6 +3233,54 @@
 %! assert (class (javaObject ("java.lang.Long",    uint64 (1))), "java.lang.Long");
 %! assert (class (javaObject ("java.lang.Long",     int64 (1))), "java.lang.Long");
 
+## More checks of java numeric and boolean class instances
+%!testif HAVE_JAVA; usejava ("jvm")
+%! n = javaObject ("java.lang.Double", 1.35);
+%! assert (n.compareTo (1.0), 1);
+%! assert (n.compareTo (1.35), 0);
+%! assert (n.compareTo (10), -1);
+%! assert (n.isInfinite (), false);
+
+%!testif HAVE_JAVA; usejava ("jvm")
+%! n = javaObject ("java.lang.Float", 1.35);
+%! assert (n.compareTo (1.0), 1);
+%! assert (n.compareTo (1.35), 0);
+%! assert (n.compareTo (10), -1);
+%! assert (n.doubleValue (), 1.35, 1e7);
+
+%!testif HAVE_JAVA; usejava ("jvm")
+%! n = javaObject ("java.lang.Long", (int64 (1)));
+%! assert (n.compareTo (int64 (0)), 1);
+%! assert (n.compareTo (int64 (1)), 0);
+%! assert (n.compareTo (int64 (2)), -1);
+%! assert (n.toString (), "1");
+
+%!testif HAVE_JAVA; usejava ("jvm")
+%! n = javaObject ("java.lang.Integer", 1.35);
+%! assert (n.compareTo (0), 1);
+%! assert (n.compareTo (1), 0);
+%! assert (n.compareTo (2), -1);
+
+%!testif HAVE_JAVA; usejava ("jvm")
+%! n = javaObject ("java.lang.Short", 1.35);
+%! assert (n.compareTo (0), 1);
+%! assert (n.compareTo (1), 0);
+%! assert (n.compareTo (2), -1);
+
+%!testif HAVE_JAVA; usejava ("jvm")
+%! n = javaObject ("java.lang.Byte", int8 (17));
+%! assert (n.compareTo (int8 (20)), -3);
+%! assert (n.compareTo (int8 (10)), 7);
+%! assert (n.compareTo (int8 (17)), 0);
+
+%!testif HAVE_JAVA; usejava ("jvm")
+%! b = javaObject ("java.lang.Boolean", true);
+%! assert (b.compareTo (true), 0);
+%! assert (b.compareTo (false), 1);
+%! b = javaObject ("java.lang.Boolean", false);
+%! assert (b.compareTo (true), -1);
+%! assert (b.compareTo (false), 0);
+
 ## Test for automatic conversion of specific numeric classes
 %!testif HAVE_JAVA; usejava ("jvm") <*48013>
 %! assert (javaMethod ("valueOf", "java.lang.Byte",     int8 (1)), 1)
@@ -3266,4 +3314,10 @@
 %! assert (a(1).s.charAt (5), "e")
 %! assert (a(1).s.matches ("^Octave$"))
 %! assert (a(1).s.startsWith ("Oct"))
+
+## Check for basic usability of the java awt library
+%!testif HAVE_JAVA; usejava ("jvm") && usejava ("awt") && have_window_system ()
+%! frame = javaObject ("java.awt.Frame");
+%! frame.setResizable (true);
+%! assert (frame.isResizable ());
 */