Modified: 
pivot/trunk/core/test/org/apache/pivot/functional/monad/test/TryTest.java
URL: 
http://svn.apache.org/viewvc/pivot/trunk/core/test/org/apache/pivot/functional/monad/test/TryTest.java?rev=1913470&r1=1913469&r2=1913470&view=diff
==============================================================================
--- pivot/trunk/core/test/org/apache/pivot/functional/monad/test/TryTest.java 
(original)
+++ pivot/trunk/core/test/org/apache/pivot/functional/monad/test/TryTest.java 
Tue Oct 31 19:15:47 2023
@@ -1,343 +1,343 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.pivot.functional.monad.test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Iterator;
-import java.util.Random;
-
-import org.apache.pivot.functional.monad.Failure;
-import org.apache.pivot.functional.monad.None;
-import org.apache.pivot.functional.monad.Option;
-import org.apache.pivot.functional.monad.Some;
-import org.apache.pivot.functional.monad.Success;
-import org.apache.pivot.functional.monad.Try;
-import org.apache.pivot.functional.monad.TryCompanion;
-import org.junit.Test;
-
-public class TryTest {
-    @Test
-    public void companionTest() {
-        TryCompanion<Object> t = TryCompanion.getInstance();
-        assertNotNull(t);
-    }
-
-    @Test
-    public void companionNullTest() {
-        TryCompanion<Object> t = TryCompanion.getInstance();
-        assertNotNull(t);
-
-        Try<Object> tn = t.fromValue(null);
-        assertNotNull(tn);
-        assertTrue(tn instanceof Success);
-        assertTrue(tn.isSuccess());
-        Object tnValue = tn.getValue();
-        assertNull(tnValue);
-        System.out.println("companionNullTest(), value stored is " + tnValue);
-    }
-
-    @Test
-    public void companionObjectTest() {
-        TryCompanion<Object> t = TryCompanion.getInstance();
-        assertNotNull(t);
-
-        Try<Object> to = t.fromValue(new String("Hello"));
-        assertNotNull(to);
-        assertTrue(to instanceof Success);
-        assertTrue(to.isSuccess());
-        Object toValue = to.getValue();
-        assertNotNull(toValue);
-        assertTrue(toValue instanceof String);
-        assertEquals(toValue, "Hello");
-        System.out.println("companionObjectTest(), value stored is " + 
toValue);
-    }
-
-    @Test
-    public void companionStringTest() {
-        TryCompanion<String> t = TryCompanion.getInstance();
-        assertNotNull(t);
-
-        Try<String> ts = t.fromValue("Hello");
-        assertNotNull(ts);
-        assertTrue(ts instanceof Success);
-        assertTrue(ts.isSuccess());
-        String tsValue = ts.getValue();
-        assertNotNull(tsValue);
-        // assertTrue(tsValue instanceof String);  // unnecessary
-        assertEquals(tsValue, "Hello");
-        System.out.println("companionStringTest(), value stored is " + 
tsValue);
-    }
-
-    @Test
-    public void companionFailureTest() {
-        TryCompanion<String> t = TryCompanion.getInstance();
-        assertNotNull(t);
-
-        RuntimeException re = new IllegalArgumentException("Sample 
RuntimeException");
-        Try<String> tf = t.fromValue(re);
-        assertNotNull(tf);
-        assertTrue(tf instanceof Failure);
-        assertFalse(tf.isSuccess());
-        try {
-            String tfValue = tf.getValue();  // this will throw the 
RuntimeException stored inside the Failure
-            assertNotNull(tfValue);          // never called
-        } catch (RuntimeException e) {
-            System.err.println("companionFailureTest(), value stored is " + e);
-            assertNotNull(e);  // unnecessary
-
-        }
-    }
-
-    @Test
-    public void companionRealUsageRandomTest() {
-        TryCompanion<String> t = TryCompanion.getInstance();
-        assertNotNull(t);
-
-        Try<String> ts = null;
-        String value;
-
-        // randomizing this test
-        Random randomGenerator = new Random();
-        int randomInt = randomGenerator.nextInt(100);
-
-        // store the value (or the RuntimeException) in the Try instance
-        try {
-            // randomizing this test:
-            // for even numbers a value will be generated,
-            // but for odd numbers the value will be null so a call on it will 
throw a RuntimeException
-            if (randomInt % 2 == 0) {
-                value = String.valueOf(randomInt);
-            } else {
-                value = null;
-                throw new NullPointerException("Sample RuntimeException");  // 
simulate an exception here
-            }
-
-            ts = t.fromValue(value);
-        } catch (RuntimeException e) {
-            ts = t.fromValue(e);
-        }
-
-        // verify the value stored
-        System.out.println("companionRealUsageRandomTest(), value stored is a 
success " + ts.isSuccess());
-        try {
-            String tsValue = ts.getValue();  // this will throw the 
RuntimeException stored inside the Failure
-            assertNotNull(tsValue);          // called only when a real value 
is stored (and not a RuntimeException)
-            System.out.println("companionRealUsageRandomTest(), value stored 
is " + tsValue);
-            assertTrue(ts.isSuccess());
-        } catch (RuntimeException e) {
-            System.err.println("companionRealUsageRandomTest(), exception 
stored is " + e);
-            assertFalse(ts.isSuccess());
-        }
-    }
-
-    @Test
-    public void trySuccessTest() {
-        // sample by direct instancing of Success/Failure classes, but 
discouraged
-        Try<String> ts = null;
-
-        // store the value (or the RuntimeException) in the Try instance
-        try {
-            ts = new Success<>("Hello with Success");
-        } catch (RuntimeException e) {
-            // ts = new Success<>(e);  // compile error, ok
-            ts = new Failure<>(e);
-            assertNotNull(e);  // unnecessary
-        }
-
-        // verify the value stored
-        System.out.println("trySuccessTest(), value stored is a success " + 
ts.isSuccess());
-        String tsValue;
-        try {
-            tsValue = ts.getValue();  // this will throw the RuntimeException 
stored inside the Failure
-            assertNotNull(tsValue);   // called only when a real value is 
stored (and not a RuntimeException)
-            System.out.println("trySuccessTest(), value stored is " + tsValue);
-            assertTrue(ts.isSuccess());
-        } catch (RuntimeException e) {
-            System.err.println("trySuccessTest(), exception stored is " + e);
-            assertFalse(ts.isSuccess());
-        }
-        // test with alternative value
-        tsValue = ts.getValueOrElse("Alternative value");
-        assertEquals("Hello with Success", tsValue);
-        tsValue = ts.getValueOrNull();
-        assertEquals("Hello with Success", tsValue);
-    }
-
-    @Test
-    public void tryFailureTest() {
-        // sample by direct instancing of Success/Failure classes, but 
discouraged
-        Try<String> tf = null;
-
-        // store the value (or the RuntimeException) in the Try instance
-        try {
-            throw new NullPointerException("Sample RuntimeException");  // 
simulate an exception here
-        } catch (RuntimeException e) {
-            // ts = new Success<>(e);  // compile error, ok
-            tf = new Failure<>(e);
-            assertNotNull(e);  // unnecessary
-        }
-
-        // verify the value stored
-        System.out.println("tryFailureTest(), value stored is a success " + 
tf.isSuccess());
-        String tsValue;
-        try {
-            tsValue = tf.getValue();  // this will throw the RuntimeException 
stored inside the Failure
-            assertNotNull(tsValue);   // called only when a real value is 
stored (and not a RuntimeException)
-            System.out.println("tryFailureTest(), value stored is " + tsValue);
-            assertTrue(tf.isSuccess());
-        } catch (RuntimeException e) {
-            System.err.println("tryFailureTest(), exception stored is " + e);
-            assertFalse(tf.isSuccess());
-        }
-        // test with alternative value
-        tsValue = tf.getValueOrElse("Alternative value");
-        assertEquals("Alternative value", tsValue);
-        tsValue = tf.getValueOrNull();
-        assertEquals(null, tsValue);
-    }
-
-    @Test
-    public void trySuccessIteratorTest() {
-        // sample by direct instancing of Success/Failure classes, but 
discouraged
-        Try<String> ts = new Success<>("Hello with Success");
-        System.out.println("trySuccessIteratorTest(), instance variable is " + 
ts);
-
-        // iterate and verify on the value stored
-        Iterator<String> it = ts.iterator();
-        assertNotNull(it);
-        int i = 0;
-        while (it.hasNext()) {
-            String value = it.next();
-            System.out.println("trySuccessIteratorTest(), value " + i + " from 
iterator is " + value);
-            assertNotNull(value);
-            assertEquals("Hello with Success", value);
-            i++;
-        }
-        assertEquals(i, 1);
-
-        // another test
-        i = 0;
-        System.out.println("trySuccessIteratorTest(), another test");
-        for (String value : ts) {
-            System.out.println("trySuccessIteratorTest(), value " + i + " from 
iterator is " + value);
-            assertNotNull(value);
-            assertEquals("Hello with Success", value);
-            i++;
-        }
-        assertEquals(i, 1);
-    }
-
-    @Test
-    public void tryFailureIteratorTest() {
-        // sample by direct instancing of Success/Failure classes, but 
discouraged
-        Try<String> tf = null;
-
-        // store the value (or the RuntimeException) in the Try instance
-        try {
-            throw new NullPointerException("Sample RuntimeException");  // 
simulate an exception here
-        } catch (RuntimeException e) {
-            tf = new Failure<>(e);
-        }
-        System.out.println("tryFailureIteratorTest(), instance variable is " + 
tf);
-
-        // iterate and verify on the value stored
-        Iterator<String> it = tf.iterator();
-        assertNotNull(it);
-        int i = 0;
-        while (it.hasNext()) {
-            // never executed in this case
-            String value = it.next();
-            System.out.println("tryFailureIteratorTest(), value " + i + " from 
iterator is " + value);
-            assertNull(value);
-            i++;
-        }
-        assertEquals(i, 0);
-
-        // another test
-        i = 0;
-        System.out.println("tryFailureIteratorTest(), another test");
-        for (String value : tf) {
-            // never executed in this case
-            System.out.println("tryFailureIteratorTest(), value " + i + " from 
iterator is " + value);
-            assertNull(value);
-            i++;
-        }
-        assertEquals(i, 0);
-    }
-
-    @Test
-    public void companionSuccessToOptionTest() {
-        TryCompanion<String> t = TryCompanion.getInstance();
-        assertNotNull(t);
-
-        Try<String> ts = t.fromValue("Hello");
-        Option<String> os = t.toOption(ts);
-
-        // verify the value stored
-        System.out.println("companionSuccessToOptionTest(), Try instance is " 
+ ts);
-        System.out.println("companionSuccessToOptionTest(), Option instance is 
" + os);
-
-        assertNotNull(ts);
-        assertTrue(ts instanceof Success);
-        assertTrue(ts.isSuccess());
-
-        assertNotNull(os);
-        assertTrue(os instanceof Some);
-        assertTrue(os.hasValue());
-
-        String osValue = os.getValue();
-        assertNotNull(osValue);
-        assertEquals(osValue, "Hello");
-        System.out.println("companionSuccessToOptionTest(), value stored is " 
+ osValue);
-    }
-
-    @Test
-    public void companionFailureToOptionTest() {
-        TryCompanion<String> t = TryCompanion.getInstance();
-        assertNotNull(t);
-
-        RuntimeException re = new IllegalArgumentException("Sample 
RuntimeException");
-        Try<String> tf = t.fromValue(re);
-        Option<String> on = t.toOption(tf);
-
-        // verify the value stored
-        System.out.println("companionFailureToOptionTest(), Try instance is " 
+ tf);
-        System.out.println("companionFailureToOptionTest(), Option instance is 
" + on);
-
-        assertNotNull(tf);
-        assertTrue(tf instanceof Failure);
-        assertFalse(tf.isSuccess());
-
-        assertNotNull(on);
-        assertTrue(on instanceof None);
-        assertFalse(on.hasValue());
-
-        try {
-            String onValue = on.getValue();  // this will throw a 
RuntimeException for the non-value of None
-            assertNotNull(onValue);          // never called
-        } catch (RuntimeException e) {
-            System.err.println("companionFailureToOptionTest(), got 
RuntimeException " + e);
-        }
-
-    }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pivot.functional.monad.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Iterator;
+import java.util.Random;
+
+import org.apache.pivot.functional.monad.Failure;
+import org.apache.pivot.functional.monad.None;
+import org.apache.pivot.functional.monad.Option;
+import org.apache.pivot.functional.monad.Some;
+import org.apache.pivot.functional.monad.Success;
+import org.apache.pivot.functional.monad.Try;
+import org.apache.pivot.functional.monad.TryCompanion;
+import org.junit.Test;
+
+public class TryTest {
+    @Test
+    public void companionTest() {
+        TryCompanion<Object> t = TryCompanion.getInstance();
+        assertNotNull(t);
+    }
+
+    @Test
+    public void companionNullTest() {
+        TryCompanion<Object> t = TryCompanion.getInstance();
+        assertNotNull(t);
+
+        Try<Object> tn = t.fromValue(null);
+        assertNotNull(tn);
+        assertTrue(tn instanceof Success);
+        assertTrue(tn.isSuccess());
+        Object tnValue = tn.getValue();
+        assertNull(tnValue);
+        System.out.println("companionNullTest(), value stored is " + tnValue);
+    }
+
+    @Test
+    public void companionObjectTest() {
+        TryCompanion<Object> t = TryCompanion.getInstance();
+        assertNotNull(t);
+
+        Try<Object> to = t.fromValue(new String("Hello"));
+        assertNotNull(to);
+        assertTrue(to instanceof Success);
+        assertTrue(to.isSuccess());
+        Object toValue = to.getValue();
+        assertNotNull(toValue);
+        assertTrue(toValue instanceof String);
+        assertEquals(toValue, "Hello");
+        System.out.println("companionObjectTest(), value stored is " + 
toValue);
+    }
+
+    @Test
+    public void companionStringTest() {
+        TryCompanion<String> t = TryCompanion.getInstance();
+        assertNotNull(t);
+
+        Try<String> ts = t.fromValue("Hello");
+        assertNotNull(ts);
+        assertTrue(ts instanceof Success);
+        assertTrue(ts.isSuccess());
+        String tsValue = ts.getValue();
+        assertNotNull(tsValue);
+        // assertTrue(tsValue instanceof String);  // unnecessary
+        assertEquals(tsValue, "Hello");
+        System.out.println("companionStringTest(), value stored is " + 
tsValue);
+    }
+
+    @Test
+    public void companionFailureTest() {
+        TryCompanion<String> t = TryCompanion.getInstance();
+        assertNotNull(t);
+
+        RuntimeException re = new IllegalArgumentException("Sample 
RuntimeException");
+        Try<String> tf = t.fromValue(re);
+        assertNotNull(tf);
+        assertTrue(tf instanceof Failure);
+        assertFalse(tf.isSuccess());
+        try {
+            String tfValue = tf.getValue();  // this will throw the 
RuntimeException stored inside the Failure
+            assertNotNull(tfValue);          // never called
+        } catch (RuntimeException e) {
+            System.err.println("companionFailureTest(), value stored is " + e);
+            assertNotNull(e);  // unnecessary
+
+        }
+    }
+
+    @Test
+    public void companionRealUsageRandomTest() {
+        TryCompanion<String> t = TryCompanion.getInstance();
+        assertNotNull(t);
+
+        Try<String> ts = null;
+        String value;
+
+        // randomizing this test
+        Random randomGenerator = new Random();
+        int randomInt = randomGenerator.nextInt(100);
+
+        // store the value (or the RuntimeException) in the Try instance
+        try {
+            // randomizing this test:
+            // for even numbers a value will be generated,
+            // but for odd numbers the value will be null so a call on it will 
throw a RuntimeException
+            if (randomInt % 2 == 0) {
+                value = String.valueOf(randomInt);
+            } else {
+                value = null;
+                throw new NullPointerException("Sample RuntimeException");  // 
simulate an exception here
+            }
+
+            ts = t.fromValue(value);
+        } catch (RuntimeException e) {
+            ts = t.fromValue(e);
+        }
+
+        // verify the value stored
+        System.out.println("companionRealUsageRandomTest(), value stored is a 
success " + ts.isSuccess());
+        try {
+            String tsValue = ts.getValue();  // this will throw the 
RuntimeException stored inside the Failure
+            assertNotNull(tsValue);          // called only when a real value 
is stored (and not a RuntimeException)
+            System.out.println("companionRealUsageRandomTest(), value stored 
is " + tsValue);
+            assertTrue(ts.isSuccess());
+        } catch (RuntimeException e) {
+            System.err.println("companionRealUsageRandomTest(), exception 
stored is " + e);
+            assertFalse(ts.isSuccess());
+        }
+    }
+
+    @Test
+    public void trySuccessTest() {
+        // sample by direct instancing of Success/Failure classes, but 
discouraged
+        Try<String> ts = null;
+
+        // store the value (or the RuntimeException) in the Try instance
+        try {
+            ts = new Success<>("Hello with Success");
+        } catch (RuntimeException e) {
+            // ts = new Success<>(e);  // compile error, ok
+            ts = new Failure<>(e);
+            assertNotNull(e);  // unnecessary
+        }
+
+        // verify the value stored
+        System.out.println("trySuccessTest(), value stored is a success " + 
ts.isSuccess());
+        String tsValue;
+        try {
+            tsValue = ts.getValue();  // this will throw the RuntimeException 
stored inside the Failure
+            assertNotNull(tsValue);   // called only when a real value is 
stored (and not a RuntimeException)
+            System.out.println("trySuccessTest(), value stored is " + tsValue);
+            assertTrue(ts.isSuccess());
+        } catch (RuntimeException e) {
+            System.err.println("trySuccessTest(), exception stored is " + e);
+            assertFalse(ts.isSuccess());
+        }
+        // test with alternative value
+        tsValue = ts.getValueOrElse("Alternative value");
+        assertEquals("Hello with Success", tsValue);
+        tsValue = ts.getValueOrNull();
+        assertEquals("Hello with Success", tsValue);
+    }
+
+    @Test
+    public void tryFailureTest() {
+        // sample by direct instancing of Success/Failure classes, but 
discouraged
+        Try<String> tf = null;
+
+        // store the value (or the RuntimeException) in the Try instance
+        try {
+            throw new NullPointerException("Sample RuntimeException");  // 
simulate an exception here
+        } catch (RuntimeException e) {
+            // ts = new Success<>(e);  // compile error, ok
+            tf = new Failure<>(e);
+            assertNotNull(e);  // unnecessary
+        }
+
+        // verify the value stored
+        System.out.println("tryFailureTest(), value stored is a success " + 
tf.isSuccess());
+        String tsValue;
+        try {
+            tsValue = tf.getValue();  // this will throw the RuntimeException 
stored inside the Failure
+            assertNotNull(tsValue);   // called only when a real value is 
stored (and not a RuntimeException)
+            System.out.println("tryFailureTest(), value stored is " + tsValue);
+            assertTrue(tf.isSuccess());
+        } catch (RuntimeException e) {
+            System.err.println("tryFailureTest(), exception stored is " + e);
+            assertFalse(tf.isSuccess());
+        }
+        // test with alternative value
+        tsValue = tf.getValueOrElse("Alternative value");
+        assertEquals("Alternative value", tsValue);
+        tsValue = tf.getValueOrNull();
+        assertEquals(null, tsValue);
+    }
+
+    @Test
+    public void trySuccessIteratorTest() {
+        // sample by direct instancing of Success/Failure classes, but 
discouraged
+        Try<String> ts = new Success<>("Hello with Success");
+        System.out.println("trySuccessIteratorTest(), instance variable is " + 
ts);
+
+        // iterate and verify on the value stored
+        Iterator<String> it = ts.iterator();
+        assertNotNull(it);
+        int i = 0;
+        while (it.hasNext()) {
+            String value = it.next();
+            System.out.println("trySuccessIteratorTest(), value " + i + " from 
iterator is " + value);
+            assertNotNull(value);
+            assertEquals("Hello with Success", value);
+            i++;
+        }
+        assertEquals(i, 1);
+
+        // another test
+        i = 0;
+        System.out.println("trySuccessIteratorTest(), another test");
+        for (String value : ts) {
+            System.out.println("trySuccessIteratorTest(), value " + i + " from 
iterator is " + value);
+            assertNotNull(value);
+            assertEquals("Hello with Success", value);
+            i++;
+        }
+        assertEquals(i, 1);
+    }
+
+    @Test
+    public void tryFailureIteratorTest() {
+        // sample by direct instancing of Success/Failure classes, but 
discouraged
+        Try<String> tf = null;
+
+        // store the value (or the RuntimeException) in the Try instance
+        try {
+            throw new NullPointerException("Sample RuntimeException");  // 
simulate an exception here
+        } catch (RuntimeException e) {
+            tf = new Failure<>(e);
+        }
+        System.out.println("tryFailureIteratorTest(), instance variable is " + 
tf);
+
+        // iterate and verify on the value stored
+        Iterator<String> it = tf.iterator();
+        assertNotNull(it);
+        int i = 0;
+        while (it.hasNext()) {
+            // never executed in this case
+            String value = it.next();
+            System.out.println("tryFailureIteratorTest(), value " + i + " from 
iterator is " + value);
+            assertNull(value);
+            i++;
+        }
+        assertEquals(i, 0);
+
+        // another test
+        i = 0;
+        System.out.println("tryFailureIteratorTest(), another test");
+        for (String value : tf) {
+            // never executed in this case
+            System.out.println("tryFailureIteratorTest(), value " + i + " from 
iterator is " + value);
+            assertNull(value);
+            i++;
+        }
+        assertEquals(i, 0);
+    }
+
+    @Test
+    public void companionSuccessToOptionTest() {
+        TryCompanion<String> t = TryCompanion.getInstance();
+        assertNotNull(t);
+
+        Try<String> ts = t.fromValue("Hello");
+        Option<String> os = t.toOption(ts);
+
+        // verify the value stored
+        System.out.println("companionSuccessToOptionTest(), Try instance is " 
+ ts);
+        System.out.println("companionSuccessToOptionTest(), Option instance is 
" + os);
+
+        assertNotNull(ts);
+        assertTrue(ts instanceof Success);
+        assertTrue(ts.isSuccess());
+
+        assertNotNull(os);
+        assertTrue(os instanceof Some);
+        assertTrue(os.hasValue());
+
+        String osValue = os.getValue();
+        assertNotNull(osValue);
+        assertEquals(osValue, "Hello");
+        System.out.println("companionSuccessToOptionTest(), value stored is " 
+ osValue);
+    }
+
+    @Test
+    public void companionFailureToOptionTest() {
+        TryCompanion<String> t = TryCompanion.getInstance();
+        assertNotNull(t);
+
+        RuntimeException re = new IllegalArgumentException("Sample 
RuntimeException");
+        Try<String> tf = t.fromValue(re);
+        Option<String> on = t.toOption(tf);
+
+        // verify the value stored
+        System.out.println("companionFailureToOptionTest(), Try instance is " 
+ tf);
+        System.out.println("companionFailureToOptionTest(), Option instance is 
" + on);
+
+        assertNotNull(tf);
+        assertTrue(tf instanceof Failure);
+        assertFalse(tf.isSuccess());
+
+        assertNotNull(on);
+        assertTrue(on instanceof None);
+        assertFalse(on.hasValue());
+
+        try {
+            String onValue = on.getValue();  // this will throw a 
RuntimeException for the non-value of None
+            assertNotNull(onValue);          // never called
+        } catch (RuntimeException e) {
+            System.err.println("companionFailureToOptionTest(), got 
RuntimeException " + e);
+        }
+
+    }
+
+}

Propchange: 
pivot/trunk/core/test/org/apache/pivot/functional/monad/test/TryTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: pivot/trunk/core/test/org/apache/pivot/text/test/CharSpanTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
pivot/trunk/core/test/org/apache/pivot/util/test/BooleanResultTest.java
URL: 
http://svn.apache.org/viewvc/pivot/trunk/core/test/org/apache/pivot/util/test/BooleanResultTest.java?rev=1913470&r1=1913469&r2=1913470&view=diff
==============================================================================
--- pivot/trunk/core/test/org/apache/pivot/util/test/BooleanResultTest.java 
(original)
+++ pivot/trunk/core/test/org/apache/pivot/util/test/BooleanResultTest.java Tue 
Oct 31 19:15:47 2023
@@ -1,83 +1,83 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.pivot.util.test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-
-import org.junit.Test;
-
-import org.apache.pivot.util.BooleanResult;
-
-
-public class BooleanResultTest {
-    private enum Operation {
-        OR,
-        AND,
-        XOR,
-        NOT,
-        CLEAR,
-        SET
-    }
-
-    private void operateAndTest(BooleanResult result, boolean value, Operation 
op, boolean expectedResult) {
-        switch (op) {
-            case OR:
-                result.or(value);
-                break;
-            case AND:
-                result.and(value);
-                break;
-            case XOR:
-                result.xor(value);
-                break;
-            case NOT:
-                result.not();
-                break;
-            case CLEAR:
-                result.clear();
-                break;
-            case SET:
-                result.set(value);
-                break;
-            default:
-                assertFalse("Invalid operator " + op, true);
-                break;
-        }
-        assertEquals(result.get(), expectedResult);
-    }
-
-    @Test
-    public void test() {
-        BooleanResult result = new BooleanResult();
-        operateAndTest(result, false, Operation.OR, false);
-        operateAndTest(result, true, Operation.OR, true);
-        operateAndTest(result, true, Operation.XOR, false);
-        operateAndTest(result, false /* ignored */, Operation.NOT, true);
-        operateAndTest(result, true, Operation.AND, true);
-        operateAndTest(result, false, Operation.SET, false);
-        operateAndTest(result, true, Operation.SET, true);
-        operateAndTest(result, true /* ignored */, Operation.CLEAR, false);
-
-        BooleanResult result2 = new BooleanResult(true);
-        assertEquals(result2.get(), true);
-
-        result2.clear();
-        assertEquals(result2.get(), false);
-    }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pivot.util.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+import org.junit.Test;
+
+import org.apache.pivot.util.BooleanResult;
+
+
+public class BooleanResultTest {
+    private enum Operation {
+        OR,
+        AND,
+        XOR,
+        NOT,
+        CLEAR,
+        SET
+    }
+
+    private void operateAndTest(BooleanResult result, boolean value, Operation 
op, boolean expectedResult) {
+        switch (op) {
+            case OR:
+                result.or(value);
+                break;
+            case AND:
+                result.and(value);
+                break;
+            case XOR:
+                result.xor(value);
+                break;
+            case NOT:
+                result.not();
+                break;
+            case CLEAR:
+                result.clear();
+                break;
+            case SET:
+                result.set(value);
+                break;
+            default:
+                assertFalse("Invalid operator " + op, true);
+                break;
+        }
+        assertEquals(result.get(), expectedResult);
+    }
+
+    @Test
+    public void test() {
+        BooleanResult result = new BooleanResult();
+        operateAndTest(result, false, Operation.OR, false);
+        operateAndTest(result, true, Operation.OR, true);
+        operateAndTest(result, true, Operation.XOR, false);
+        operateAndTest(result, false /* ignored */, Operation.NOT, true);
+        operateAndTest(result, true, Operation.AND, true);
+        operateAndTest(result, false, Operation.SET, false);
+        operateAndTest(result, true, Operation.SET, true);
+        operateAndTest(result, true /* ignored */, Operation.CLEAR, false);
+
+        BooleanResult result2 = new BooleanResult(true);
+        assertEquals(result2.get(), true);
+
+        result2.clear();
+        assertEquals(result2.get(), false);
+    }
+
+}

Propchange: 
pivot/trunk/core/test/org/apache/pivot/util/test/BooleanResultTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: pivot/trunk/core/test/org/apache/pivot/util/test/CalendarDateTest.java
URL: 
http://svn.apache.org/viewvc/pivot/trunk/core/test/org/apache/pivot/util/test/CalendarDateTest.java?rev=1913470&r1=1913469&r2=1913470&view=diff
==============================================================================
--- pivot/trunk/core/test/org/apache/pivot/util/test/CalendarDateTest.java 
(original)
+++ pivot/trunk/core/test/org/apache/pivot/util/test/CalendarDateTest.java Tue 
Oct 31 19:15:47 2023
@@ -1,128 +1,128 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.pivot.util.test;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.TimeZone;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import org.junit.Test;
-
-import org.apache.pivot.util.CalendarDate;
-import org.apache.pivot.util.Time;
-
-
-public class CalendarDateTest {
-    private static final String D1 = "1941-12-07";
-    private static final String D2 = "1929-10-29";
-    private static final String D3 = "2008-09-29";
-    private static final String D4 = "1945-08-14";
-    private static final String D5 = "2019-12-06";
-    private static final int DAYS_FROM_D1_TO_D5 = 28_488;
-
-    @Test
-    public void test1() {
-        CalendarDate.Range r1 = new CalendarDate.Range(D1);
-        CalendarDate.Range r1a = new CalendarDate.Range(D1, D1);
-        CalendarDate.Range r2 = new CalendarDate.Range(D2, D3);
-        CalendarDate.Range r3 = CalendarDate.Range.decode("{ \"start\" : 
\"1929-10-29\", \"end\" : \"2008-09-29\"}");
-        CalendarDate.Range r3a = CalendarDate.Range.decode("[ \"1929-10-29\", 
\"2008-09-29\" ]");
-        CalendarDate.Range r3b = CalendarDate.Range.decode("1929-10-29, 
2008-09-29");
-
-        CalendarDate cd1 = CalendarDate.decode(D1);
-        CalendarDate cd2 = CalendarDate.decode(D2);
-        CalendarDate cd3 = CalendarDate.decode(D3);
-
-        assertTrue(r2.contains(r1));
-        assertEquals(r1, r1a);
-        assertEquals(r1.getLength(), 1);
-        assertTrue(r2.normalize().equals(r2));
-        // TODO: more tests of range methods: intersects, etc.
-
-        assertEquals(r3, r3a);
-        assertEquals(r3, r3b);
-        assertEquals(r3a, r3b);
-
-        assertEquals(cd1.year, 1941);
-        assertEquals(cd1.month, 11);
-        assertEquals(cd1.day, 6);
-        assertEquals(cd1.toString(), D1);
-    }
-
-    @Test
-    public void test2() {
-        // PIVOT-1010: test interaction with LocalDate, etc. (new Java 8 
classes)
-        LocalDate ld1 = LocalDate.of(1941, 12, 7);
-        CalendarDate cd1 = new CalendarDate(ld1);
-        CalendarDate cd1a = CalendarDate.decode(D1);
-        LocalDate ld1a = cd1a.toLocalDate();
-
-        assertEquals(cd1, cd1a);
-        assertEquals(ld1, ld1a);
-
-        Time t1 = Time.decode("07:48:00");
-        LocalDateTime dt1 = LocalDateTime.of(1941, 12, 7, 7, 48, 0);
-        LocalDateTime dt1a = cd1.toLocalDateTime(t1);
-
-        assertEquals(dt1, dt1a);
-    }
-
-    @Test
-    public void test3() {
-        // Testing new stuff in CalendarDate that tries to deal with time zones
-        // more effectively
-        TimeZone gmtZone = CalendarDate.TIMEZONE_GMT;
-        TimeZone pstZone = TimeZone.getTimeZone("America/Los_Angeles");
-        CalendarDate d1 = new CalendarDate(1941, 11, 6, gmtZone);
-        CalendarDate d2 = new CalendarDate(1941, 11, 6, pstZone);
-        CalendarDate d3 = new CalendarDate(1945, 7, 13, gmtZone);
-        CalendarDate d4 = d1.add(1346);
-        CalendarDate d5 = d2.add(1346);
-
-        // First we should establish that dates don't depend on timezone for 
equality
-        // nor do their string representations
-        assertTrue(d1.equals(d2));
-        assertEquals(d1.toString(), d2.toString());
-
-        // Now, establish whether (or not) timezones might make a difference 
in durations
-        assertEquals(d3.subtract(d1), 1346);
-        // Surprise! they do!
-        assertEquals(d3.subtract(d2), 1345);
-        assertEquals(d4, d5);
-    }
-
-    @Test
-    public void test4() {
-        // Now let's test some of the other duration-related methods
-        CalendarDate d1 = CalendarDate.decode(D1);
-        CalendarDate d2 = d1.addMonths(44).add(7);
-        CalendarDate d3 = d1.addYears(3).addMonths(8).add(7);
-        CalendarDate d4 = CalendarDate.decode(D4);
-        CalendarDate d5 = CalendarDate.decode(D5);
-
-        assertEquals(d2, d3);
-        assertEquals(d2, d4);
-        assertEquals(d3, d4);
-
-        assertEquals(d5.subtract(d1), DAYS_FROM_D1_TO_D5);
-        assertEquals(d1.add(DAYS_FROM_D1_TO_D5), d5);
-        assertEquals(d1.add(DAYS_FROM_D1_TO_D5).add(-DAYS_FROM_D1_TO_D5), d1);
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pivot.util.test;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.TimeZone;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+import org.apache.pivot.util.CalendarDate;
+import org.apache.pivot.util.Time;
+
+
+public class CalendarDateTest {
+    private static final String D1 = "1941-12-07";
+    private static final String D2 = "1929-10-29";
+    private static final String D3 = "2008-09-29";
+    private static final String D4 = "1945-08-14";
+    private static final String D5 = "2019-12-06";
+    private static final int DAYS_FROM_D1_TO_D5 = 28_488;
+
+    @Test
+    public void test1() {
+        CalendarDate.Range r1 = new CalendarDate.Range(D1);
+        CalendarDate.Range r1a = new CalendarDate.Range(D1, D1);
+        CalendarDate.Range r2 = new CalendarDate.Range(D2, D3);
+        CalendarDate.Range r3 = CalendarDate.Range.decode("{ \"start\" : 
\"1929-10-29\", \"end\" : \"2008-09-29\"}");
+        CalendarDate.Range r3a = CalendarDate.Range.decode("[ \"1929-10-29\", 
\"2008-09-29\" ]");
+        CalendarDate.Range r3b = CalendarDate.Range.decode("1929-10-29, 
2008-09-29");
+
+        CalendarDate cd1 = CalendarDate.decode(D1);
+        CalendarDate cd2 = CalendarDate.decode(D2);
+        CalendarDate cd3 = CalendarDate.decode(D3);
+
+        assertTrue(r2.contains(r1));
+        assertEquals(r1, r1a);
+        assertEquals(r1.getLength(), 1);
+        assertTrue(r2.normalize().equals(r2));
+        // TODO: more tests of range methods: intersects, etc.
+
+        assertEquals(r3, r3a);
+        assertEquals(r3, r3b);
+        assertEquals(r3a, r3b);
+
+        assertEquals(cd1.year, 1941);
+        assertEquals(cd1.month, 11);
+        assertEquals(cd1.day, 6);
+        assertEquals(cd1.toString(), D1);
+    }
+
+    @Test
+    public void test2() {
+        // PIVOT-1010: test interaction with LocalDate, etc. (new Java 8 
classes)
+        LocalDate ld1 = LocalDate.of(1941, 12, 7);
+        CalendarDate cd1 = new CalendarDate(ld1);
+        CalendarDate cd1a = CalendarDate.decode(D1);
+        LocalDate ld1a = cd1a.toLocalDate();
+
+        assertEquals(cd1, cd1a);
+        assertEquals(ld1, ld1a);
+
+        Time t1 = Time.decode("07:48:00");
+        LocalDateTime dt1 = LocalDateTime.of(1941, 12, 7, 7, 48, 0);
+        LocalDateTime dt1a = cd1.toLocalDateTime(t1);
+
+        assertEquals(dt1, dt1a);
+    }
+
+    @Test
+    public void test3() {
+        // Testing new stuff in CalendarDate that tries to deal with time zones
+        // more effectively
+        TimeZone gmtZone = CalendarDate.TIMEZONE_GMT;
+        TimeZone pstZone = TimeZone.getTimeZone("America/Los_Angeles");
+        CalendarDate d1 = new CalendarDate(1941, 11, 6, gmtZone);
+        CalendarDate d2 = new CalendarDate(1941, 11, 6, pstZone);
+        CalendarDate d3 = new CalendarDate(1945, 7, 13, gmtZone);
+        CalendarDate d4 = d1.add(1346);
+        CalendarDate d5 = d2.add(1346);
+
+        // First we should establish that dates don't depend on timezone for 
equality
+        // nor do their string representations
+        assertTrue(d1.equals(d2));
+        assertEquals(d1.toString(), d2.toString());
+
+        // Now, establish whether (or not) timezones might make a difference 
in durations
+        assertEquals(d3.subtract(d1), 1346);
+        // Surprise! they do!
+        assertEquals(d3.subtract(d2), 1345);
+        assertEquals(d4, d5);
+    }
+
+    @Test
+    public void test4() {
+        // Now let's test some of the other duration-related methods
+        CalendarDate d1 = CalendarDate.decode(D1);
+        CalendarDate d2 = d1.addMonths(44).add(7);
+        CalendarDate d3 = d1.addYears(3).addMonths(8).add(7);
+        CalendarDate d4 = CalendarDate.decode(D4);
+        CalendarDate d5 = CalendarDate.decode(D5);
+
+        assertEquals(d2, d3);
+        assertEquals(d2, d4);
+        assertEquals(d3, d4);
+
+        assertEquals(d5.subtract(d1), DAYS_FROM_D1_TO_D5);
+        assertEquals(d1.add(DAYS_FROM_D1_TO_D5), d5);
+        assertEquals(d1.add(DAYS_FROM_D1_TO_D5).add(-DAYS_FROM_D1_TO_D5), d1);
+    }
+}

Propchange: 
pivot/trunk/core/test/org/apache/pivot/util/test/CalendarDateTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: pivot/trunk/core/test/org/apache/pivot/util/test/CharUtilsTest.java
URL: 
http://svn.apache.org/viewvc/pivot/trunk/core/test/org/apache/pivot/util/test/CharUtilsTest.java?rev=1913470&r1=1913469&r2=1913470&view=diff
==============================================================================
--- pivot/trunk/core/test/org/apache/pivot/util/test/CharUtilsTest.java 
(original)
+++ pivot/trunk/core/test/org/apache/pivot/util/test/CharUtilsTest.java Tue Oct 
31 19:15:47 2023
@@ -1,76 +1,76 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.pivot.util.test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-
-import org.junit.Test;
-
-import org.apache.pivot.text.CharSpan;
-import org.apache.pivot.util.CharUtils;
-
-/**
- * Test the word selection and navigation methods in {@link CharUtils}.
- */
-public class CharUtilsTest {
-    private static final String TEST_STRING =
-        "A successful man is one who can lay a firm foundation with the bricks 
others have thrown at him."
-            + " -David Brinkley\n";
-
-    @Test
-    public void testSelectWord() {
-        CharSpan nullSpan = CharUtils.selectWord(TEST_STRING, -1);
-        assertNull("null span from negative start", nullSpan);
-
-        CharSpan firstWordSpan = new CharSpan(0, 1);
-        CharSpan firstBlankSpan = new CharSpan(1, 1);
-        CharSpan span0 = CharUtils.selectWord(TEST_STRING, 0);
-        CharSpan span1 = CharUtils.selectWord(TEST_STRING, 1);
-        assertEquals("one letter word", firstWordSpan, span0);
-        assertEquals("first blank", firstBlankSpan, span1);
-
-        CharSpan longWordSpan = new CharSpan(2, 10);
-        CharSpan spanLong1 = CharUtils.selectWord(TEST_STRING, 5);
-        CharSpan spanLong2 = CharUtils.selectWord(TEST_STRING, 11);
-        assertEquals("long word", longWordSpan, spanLong1);
-        assertEquals("same long word", spanLong1, spanLong2);
-
-        CharSpan lastWordSpan = new CharSpan(TEST_STRING.length() - 9, 8);
-        CharSpan spanLast = CharUtils.selectWord(TEST_STRING, 
TEST_STRING.length());
-        assertEquals("last word", lastWordSpan, spanLast);
-    }
-
-    @Test
-    public void testFindNextWord() {
-       int length = TEST_STRING.length();
-       int end = CharUtils.findNextWord(TEST_STRING, length - 4);
-       assertEquals("next word at end", length, end);
-
-       int midWord = CharUtils.findNextWord(TEST_STRING, 45);
-       assertEquals("next word", 54, midWord);
-    }
-
-    @Test
-    public void testFindPriorWord() {
-        int first = CharUtils.findPriorWord(TEST_STRING, 2);
-        assertEquals("first prior word", 0, first);
-
-        int third = CharUtils.findPriorWord(TEST_STRING, 14);
-        assertEquals("third prior word", 13, third);
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pivot.util.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import org.junit.Test;
+
+import org.apache.pivot.text.CharSpan;
+import org.apache.pivot.util.CharUtils;
+
+/**
+ * Test the word selection and navigation methods in {@link CharUtils}.
+ */
+public class CharUtilsTest {
+    private static final String TEST_STRING =
+        "A successful man is one who can lay a firm foundation with the bricks 
others have thrown at him."
+            + " -David Brinkley\n";
+
+    @Test
+    public void testSelectWord() {
+        CharSpan nullSpan = CharUtils.selectWord(TEST_STRING, -1);
+        assertNull("null span from negative start", nullSpan);
+
+        CharSpan firstWordSpan = new CharSpan(0, 1);
+        CharSpan firstBlankSpan = new CharSpan(1, 1);
+        CharSpan span0 = CharUtils.selectWord(TEST_STRING, 0);
+        CharSpan span1 = CharUtils.selectWord(TEST_STRING, 1);
+        assertEquals("one letter word", firstWordSpan, span0);
+        assertEquals("first blank", firstBlankSpan, span1);
+
+        CharSpan longWordSpan = new CharSpan(2, 10);
+        CharSpan spanLong1 = CharUtils.selectWord(TEST_STRING, 5);
+        CharSpan spanLong2 = CharUtils.selectWord(TEST_STRING, 11);
+        assertEquals("long word", longWordSpan, spanLong1);
+        assertEquals("same long word", spanLong1, spanLong2);
+
+        CharSpan lastWordSpan = new CharSpan(TEST_STRING.length() - 9, 8);
+        CharSpan spanLast = CharUtils.selectWord(TEST_STRING, 
TEST_STRING.length());
+        assertEquals("last word", lastWordSpan, spanLast);
+    }
+
+    @Test
+    public void testFindNextWord() {
+       int length = TEST_STRING.length();
+       int end = CharUtils.findNextWord(TEST_STRING, length - 4);
+       assertEquals("next word at end", length, end);
+
+       int midWord = CharUtils.findNextWord(TEST_STRING, 45);
+       assertEquals("next word", 54, midWord);
+    }
+
+    @Test
+    public void testFindPriorWord() {
+        int first = CharUtils.findPriorWord(TEST_STRING, 2);
+        assertEquals("first prior word", 0, first);
+
+        int third = CharUtils.findPriorWord(TEST_STRING, 14);
+        assertEquals("third prior word", 13, third);
+    }
+}

Propchange: pivot/trunk/core/test/org/apache/pivot/util/test/CharUtilsTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
pivot/trunk/core/test/org/apache/pivot/util/test/EmptyIteratorTest.java
URL: 
http://svn.apache.org/viewvc/pivot/trunk/core/test/org/apache/pivot/util/test/EmptyIteratorTest.java?rev=1913470&r1=1913469&r2=1913470&view=diff
==============================================================================
--- pivot/trunk/core/test/org/apache/pivot/util/test/EmptyIteratorTest.java 
(original)
+++ pivot/trunk/core/test/org/apache/pivot/util/test/EmptyIteratorTest.java Tue 
Oct 31 19:15:47 2023
@@ -1,51 +1,51 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.pivot.util.test;
-
-import static org.junit.Assert.assertTrue;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import org.junit.Test;
-
-import org.apache.pivot.util.EmptyIterator;
-
-
-public class EmptyIteratorTest {
-    @Test
-    public void basicTest() {
-        Iterator<String> iter = new EmptyIterator<String>();
-        assertTrue(!iter.hasNext());
-        try {
-            iter.next();
-            assertTrue(false);
-        } catch (NoSuchElementException nsee) {
-            assertTrue(true);
-        }
-    }
-
-    @Test
-    public void removeTest() {
-        Iterator<String> iter = new EmptyIterator<String>();
-        try {
-            iter.remove();
-            assertTrue(false);
-        } catch (UnsupportedOperationException uoe) {
-            assertTrue(true);
-        }
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pivot.util.test;
+
+import static org.junit.Assert.assertTrue;
+
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+import org.junit.Test;
+
+import org.apache.pivot.util.EmptyIterator;
+
+
+public class EmptyIteratorTest {
+    @Test
+    public void basicTest() {
+        Iterator<String> iter = new EmptyIterator<String>();
+        assertTrue(!iter.hasNext());
+        try {
+            iter.next();
+            assertTrue(false);
+        } catch (NoSuchElementException nsee) {
+            assertTrue(true);
+        }
+    }
+
+    @Test
+    public void removeTest() {
+        Iterator<String> iter = new EmptyIterator<String>();
+        try {
+            iter.remove();
+            assertTrue(false);
+        } catch (UnsupportedOperationException uoe) {
+            assertTrue(true);
+        }
+    }
+}

Propchange: 
pivot/trunk/core/test/org/apache/pivot/util/test/EmptyIteratorTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
pivot/trunk/core/test/org/apache/pivot/util/test/ImmutableIteratorTest.java
URL: 
http://svn.apache.org/viewvc/pivot/trunk/core/test/org/apache/pivot/util/test/ImmutableIteratorTest.java?rev=1913470&r1=1913469&r2=1913470&view=diff
==============================================================================
--- pivot/trunk/core/test/org/apache/pivot/util/test/ImmutableIteratorTest.java 
(original)
+++ pivot/trunk/core/test/org/apache/pivot/util/test/ImmutableIteratorTest.java 
Tue Oct 31 19:15:47 2023
@@ -1,74 +1,74 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.pivot.util.test;
-
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertEquals;
-
-import java.util.Iterator;
-import org.junit.Test;
-
-import org.apache.pivot.collections.ArrayList;
-import org.apache.pivot.util.ImmutableIterator;
-
-
-/**
- * Tests of the {@link ImmutableIterator} class, which is used
- * for iteration over many things, when we don't need/want to
- * modify the object we're iterating over.
- */
-public class ImmutableIteratorTest {
-    /**
-     * Run the basic tests.
-     */
-    @Test
-    public void test() {
-        ArrayList<String> strings = new ArrayList<>();
-        strings.add("Tom");
-        strings.add("Dick");
-        strings.add("Harry");
-        strings.forEach(value -> System.out.println(value));
-
-        Iterator<String> iter = strings.iterator();
-        assertEquals(iter.hasNext(), true);
-        assertEquals(iter.next(), "Tom");
-        assertEquals(iter.hasNext(), true);
-        assertEquals(iter.next(), "Dick");
-        assertEquals(iter.hasNext(), true);
-        assertEquals(iter.next(), "Harry");
-        assertEquals(iter.hasNext(), false);
-
-        iter = strings.iterator();
-        ImmutableIterator<String> iiter = new ImmutableIterator<>(iter);
-
-        try {
-            iiter.remove();
-            assertTrue(false);
-        } catch (UnsupportedOperationException uoe) {
-            assertTrue(true);
-        }
-
-        assertEquals(iiter.hasNext(), true);
-        assertEquals(iiter.next(), "Tom");
-        assertEquals(iiter.hasNext(), true);
-        assertEquals(iiter.next(), "Dick");
-        assertEquals(iiter.hasNext(), true);
-        assertEquals(iiter.next(), "Harry");
-        assertEquals(iiter.hasNext(), false);
-    }
-}
-
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pivot.util.test;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
+
+import java.util.Iterator;
+import org.junit.Test;
+
+import org.apache.pivot.collections.ArrayList;
+import org.apache.pivot.util.ImmutableIterator;
+
+
+/**
+ * Tests of the {@link ImmutableIterator} class, which is used
+ * for iteration over many things, when we don't need/want to
+ * modify the object we're iterating over.
+ */
+public class ImmutableIteratorTest {
+    /**
+     * Run the basic tests.
+     */
+    @Test
+    public void test() {
+        ArrayList<String> strings = new ArrayList<>();
+        strings.add("Tom");
+        strings.add("Dick");
+        strings.add("Harry");
+        strings.forEach(value -> System.out.println(value));
+
+        Iterator<String> iter = strings.iterator();
+        assertEquals(iter.hasNext(), true);
+        assertEquals(iter.next(), "Tom");
+        assertEquals(iter.hasNext(), true);
+        assertEquals(iter.next(), "Dick");
+        assertEquals(iter.hasNext(), true);
+        assertEquals(iter.next(), "Harry");
+        assertEquals(iter.hasNext(), false);
+
+        iter = strings.iterator();
+        ImmutableIterator<String> iiter = new ImmutableIterator<>(iter);
+
+        try {
+            iiter.remove();
+            assertTrue(false);
+        } catch (UnsupportedOperationException uoe) {
+            assertTrue(true);
+        }
+
+        assertEquals(iiter.hasNext(), true);
+        assertEquals(iiter.next(), "Tom");
+        assertEquals(iiter.hasNext(), true);
+        assertEquals(iiter.next(), "Dick");
+        assertEquals(iiter.hasNext(), true);
+        assertEquals(iiter.next(), "Harry");
+        assertEquals(iiter.hasNext(), false);
+    }
+}
+

Propchange: 
pivot/trunk/core/test/org/apache/pivot/util/test/ImmutableIteratorTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
pivot/trunk/core/test/org/apache/pivot/util/test/ListenerListTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
pivot/trunk/core/test/org/apache/pivot/util/test/StringUtilsTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: pivot/trunk/core/test/org/apache/pivot/util/test/VersionTest.java
URL: 
http://svn.apache.org/viewvc/pivot/trunk/core/test/org/apache/pivot/util/test/VersionTest.java?rev=1913470&r1=1913469&r2=1913470&view=diff
==============================================================================
--- pivot/trunk/core/test/org/apache/pivot/util/test/VersionTest.java (original)
+++ pivot/trunk/core/test/org/apache/pivot/util/test/VersionTest.java Tue Oct 
31 19:15:47 2023
@@ -1,232 +1,232 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.pivot.util.test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.junit.Test;
-
-import org.apache.pivot.util.Version;
-
-
-/**
- * Tests of the {@link Version} class.
- */
-public class VersionTest {
-    /**
-     * Test version decode that happens at application startup.
-     */
-    @Test
-    public void testApplicationStartup() {
-        // These are the things that happen right away for ApplicationContext
-        // and therefore would break immediately if Version was broken (as did
-        // happen for Java 8u131).
-        // Get the JVM version
-        Version jvmVersion = 
Version.decode(System.getProperty("java.vm.version"));
-        System.out.format("JVM Version: %1$s%n", jvmVersion.toString());
-        Version pivotVersion = null;
-        Package corePackage = Version.class.getPackage();
-
-        // Get the Java runtime version
-        Version javaVersion = 
Version.decode(System.getProperty("java.version"));
-        System.out.format("Java version: %1$s%n", javaVersion);
-
-        // Get the Pivot version
-        String version = corePackage.getImplementationVersion();
-        if (version == null) {
-            pivotVersion = new Version(0, 0, 0, 0);
-            assertEquals("default Pivot version", "0.0.0_00", 
pivotVersion.toString());
-        } else {
-            pivotVersion = Version.decode(version);
-            System.out.format("Pivot Version: %1$s%n", pivotVersion);
-        }
-    }
-
-    /** The Java version string that broke the old code (build overflows a 
byte). */
-    private static final String S1_8_131 = "1.8.0_131";
-    /** Decoding that breaking version string. */
-    private static final Version V1 = Version.decode(S1_8_131);
-    /** The version object that should match that decoded value. */
-    private static final Version V8_131 = new Version(1, 8, 0, 131);
-    /** A version 1.0 string. */
-    private static final String S1_0_0 = "1.0.0_00";
-    /** Decoding version 1. */
-    private static final Version V0 = Version.decode(S1_0_0);
-    /** The version object that should match version 1. */
-    private static final Version V1_0 = new Version(1, 0, 0, 0);
-    /** The null/empty version object. */
-    private static final Version EMPTY = new Version(0, 0, 0, 0);
-
-    /**
-     * Test basic parsing (including our overflow fail case).
-     */
-    @Test
-    public void testVersionParsing() {
-        assertEquals("version decode", V8_131, V1);
-        assertEquals("version to string", V8_131.toString(), S1_8_131);
-
-        assertEquals("version 0 decode", V1_0, V0);
-        assertEquals("version 0 to string", S1_0_0, V1_0.toString());
-
-        // New Java 9 version number scheme
-        String j9 = "9.0.1+11";
-        Version vj9 = Version.decode(j9);
-        Version vj90 = new Version(9, 0, 1, 0);
-        assertEquals("Java version 9 decode", vj90, vj9);
-        assertEquals("Java version 9 to string", "9.0.1_00-11", 
vj9.toString());
-    }
-
-    /**
-     * Test overflows of the new short values.
-     */
-    @Test
-    public void testLimits() {
-        Version vMax = new Version(32767, 32767, 32767, 32767);
-        String sMax = "32767.32767.32767_32767";
-        assertEquals("max versions", sMax, vMax.toString());
-        IllegalArgumentException argFailure = null;
-        try {
-            Version vOverflow = new Version(32768, 0, 1, 0);
-        } catch (IllegalArgumentException iae) {
-            argFailure = iae;
-        }
-        assertNotNull("illegal argument exception", argFailure);
-        assertEquals("exception message",
-            "majorVersion must be less than or equal 32767.",
-            argFailure.getMessage());
-    }
-
-    /**
-     * Test {@link Version#getNumber}.
-     */
-    @Test
-    public void testNumber() {
-        Version vNum = new Version(2, 1, 1, 100);
-        long num = vNum.getNumber();
-        System.out.format("test getNumber(): %1$s -> %2$d (0x%2$016x)%n", 
vNum, num);
-        assertEquals("long number", 0x0002000100010064L, num);
-    }
-
-    /** Taken from PIVOT-996 test case -- the build suffix ... */
-    private static final String PIVOT_996_SUFFIX = "25.51-b14";
-    /** PIVOT-996 complete input string. */
-    private static final String PIVOT_996_INPUT  = "8.1.028 " + 
PIVOT_996_SUFFIX;
-    /** What we expect from PIVOT-996 test case on output. */
-    private static final String PIVOT_996_OUTPUT = "8.1.28_00-" + 
PIVOT_996_SUFFIX;
-
-    /**
-     * Other test cases (from issues, or other sources).
-     */
-    @Test
-    public void testOtherVersions() {
-        Version jvmVersionParsed = Version.decode(PIVOT_996_INPUT);
-        Version jvmVersionExplicit = new Version(8, 1, 28, 0, 
PIVOT_996_SUFFIX);
-        String parsedToString = jvmVersionParsed.toString();
-
-        System.out.println("Information only: our version = " + 
Version.implementationVersion());
-
-        assertEquals("PIVOT-996 test case", jvmVersionExplicit, 
jvmVersionParsed);
-        System.out.format("PIVOT-996 parsed/toString: %1$s, expected: %2$s%n",
-            parsedToString, PIVOT_996_OUTPUT);
-        assertEquals("PIVOT-996 toString", PIVOT_996_OUTPUT, parsedToString);
-
-        Pattern versionPattern = Pattern.compile("(\\d+(\\.\\d+\\.\\d+)?).*");
-        String sysJavaVersion = System.getProperty("java.runtime.version");
-        Version javaVersion = Version.decode(sysJavaVersion);
-        String formattedJavaVersion = javaVersion.toString();
-        String simpleVersion = javaVersion.simpleToString();
-        System.out.format("Java Runtime version (parsed and formatted): %1$s, 
raw: %2$s, simple: %3$s%n",
-            formattedJavaVersion, sysJavaVersion, simpleVersion);
-        Matcher sysMatcher = versionPattern.matcher(sysJavaVersion);
-        boolean matches = sysMatcher.matches()
-            && simpleVersion.startsWith(sysMatcher.group(1));
-        assertTrue("Java Runtime version match", matches);
-
-        String newJava9Version = "9-ea+19";
-        Version newJava9 = Version.decode(newJava9Version);
-        String newJava9Formatted = newJava9.toString();
-        System.out.format("Potential new Java version: %1$s, parsed and 
formatted: %2$s%n",
-            newJava9Version, newJava9Formatted);
-        assertEquals("new Java 9 version", "9.0.0_00-ea+19", 
newJava9Formatted);
-
-        String newJava10Version = "10+-ea";
-        Version newJava10 = Version.decode(newJava10Version);
-        String newJava10Formatted = newJava10.toString();
-        System.out.format("Potential new Java 10 version: %1$s, parsed and 
formatted: %2$s%n",
-            newJava10Version, newJava10Formatted);
-        assertEquals("new Java 10 version", "10.0.0_00--ea", 
newJava10Formatted);
-    }
-
-    /**
-     * Complete test of the new version strings possible with Java 9
-     * (taken from <a 
href="http://openjdk.java.net/jeps/223";>http://openjdk.java.net/jeps/223</a>).
-     */
-    @Test
-    public void testJava9Versions() {
-        String[] versions = {
-            "9-ea+19",
-            "9+100",
-            "9.0.1+20",
-            "9.0.2+12",
-            "9.1.2+62",
-            "9.1.3+15",
-            "9.1.4+8",
-            "9.2.4+45",
-            "7.4.10+11",
-            "7.4.11+15",
-            "7.5.11+43",
-            "7.5.12+18",
-            "7.5.13+13",
-            "7.5.14+13",
-            "7.6.14+19",
-            "7.6.15+20",
-            "9-ea",
-            "9-ea+73",
-            "9+100",
-            "9",
-            "9.1.2",
-            "9.1.2+62",
-            "9.0.1",
-            "9.0.1+20"
-        };
-
-        // Just make sure we don't throw or get other errors decoding all these
-        for (String version : versions) {
-            Version v = Version.decode(version);
-            System.out.format("Raw %1$s -> %2$s%n", version, v.toString());
-        }
-    }
-
-    /**
-     * Test the new {@link Version#safelyDecode}.
-     */
-    @Test
-    public void testSafelyDecode() {
-        try {
-            Version junk = Version.safelyDecode("this is junk");
-            assertEquals("safely decode default", EMPTY, junk);
-        } catch (Exception ex) {
-            fail("safelyDecode threw an exception: " + ex.getMessage());
-        }
-    }
-}
-
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pivot.util.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.junit.Test;
+
+import org.apache.pivot.util.Version;
+
+
+/**
+ * Tests of the {@link Version} class.
+ */
+public class VersionTest {
+    /**
+     * Test version decode that happens at application startup.
+     */
+    @Test
+    public void testApplicationStartup() {
+        // These are the things that happen right away for ApplicationContext
+        // and therefore would break immediately if Version was broken (as did
+        // happen for Java 8u131).
+        // Get the JVM version
+        Version jvmVersion = 
Version.decode(System.getProperty("java.vm.version"));
+        System.out.format("JVM Version: %1$s%n", jvmVersion.toString());
+        Version pivotVersion = null;
+        Package corePackage = Version.class.getPackage();
+
+        // Get the Java runtime version
+        Version javaVersion = 
Version.decode(System.getProperty("java.version"));
+        System.out.format("Java version: %1$s%n", javaVersion);
+
+        // Get the Pivot version
+        String version = corePackage.getImplementationVersion();
+        if (version == null) {
+            pivotVersion = new Version(0, 0, 0, 0);
+            assertEquals("default Pivot version", "0.0.0_00", 
pivotVersion.toString());
+        } else {
+            pivotVersion = Version.decode(version);
+            System.out.format("Pivot Version: %1$s%n", pivotVersion);
+        }
+    }
+
+    /** The Java version string that broke the old code (build overflows a 
byte). */
+    private static final String S1_8_131 = "1.8.0_131";
+    /** Decoding that breaking version string. */
+    private static final Version V1 = Version.decode(S1_8_131);
+    /** The version object that should match that decoded value. */
+    private static final Version V8_131 = new Version(1, 8, 0, 131);
+    /** A version 1.0 string. */
+    private static final String S1_0_0 = "1.0.0_00";
+    /** Decoding version 1. */
+    private static final Version V0 = Version.decode(S1_0_0);
+    /** The version object that should match version 1. */
+    private static final Version V1_0 = new Version(1, 0, 0, 0);
+    /** The null/empty version object. */
+    private static final Version EMPTY = new Version(0, 0, 0, 0);
+
+    /**
+     * Test basic parsing (including our overflow fail case).
+     */
+    @Test
+    public void testVersionParsing() {
+        assertEquals("version decode", V8_131, V1);
+        assertEquals("version to string", V8_131.toString(), S1_8_131);
+
+        assertEquals("version 0 decode", V1_0, V0);
+        assertEquals("version 0 to string", S1_0_0, V1_0.toString());
+
+        // New Java 9 version number scheme
+        String j9 = "9.0.1+11";
+        Version vj9 = Version.decode(j9);
+        Version vj90 = new Version(9, 0, 1, 0);
+        assertEquals("Java version 9 decode", vj90, vj9);
+        assertEquals("Java version 9 to string", "9.0.1_00-11", 
vj9.toString());
+    }
+
+    /**
+     * Test overflows of the new short values.
+     */
+    @Test
+    public void testLimits() {
+        Version vMax = new Version(32767, 32767, 32767, 32767);
+        String sMax = "32767.32767.32767_32767";
+        assertEquals("max versions", sMax, vMax.toString());
+        IllegalArgumentException argFailure = null;
+        try {
+            Version vOverflow = new Version(32768, 0, 1, 0);
+        } catch (IllegalArgumentException iae) {
+            argFailure = iae;
+        }
+        assertNotNull("illegal argument exception", argFailure);
+        assertEquals("exception message",
+            "majorVersion must be less than or equal 32767.",
+            argFailure.getMessage());
+    }
+
+    /**
+     * Test {@link Version#getNumber}.
+     */
+    @Test
+    public void testNumber() {
+        Version vNum = new Version(2, 1, 1, 100);
+        long num = vNum.getNumber();
+        System.out.format("test getNumber(): %1$s -> %2$d (0x%2$016x)%n", 
vNum, num);
+        assertEquals("long number", 0x0002000100010064L, num);
+    }
+
+    /** Taken from PIVOT-996 test case -- the build suffix ... */
+    private static final String PIVOT_996_SUFFIX = "25.51-b14";
+    /** PIVOT-996 complete input string. */
+    private static final String PIVOT_996_INPUT  = "8.1.028 " + 
PIVOT_996_SUFFIX;
+    /** What we expect from PIVOT-996 test case on output. */
+    private static final String PIVOT_996_OUTPUT = "8.1.28_00-" + 
PIVOT_996_SUFFIX;
+
+    /**
+     * Other test cases (from issues, or other sources).
+     */
+    @Test
+    public void testOtherVersions() {
+        Version jvmVersionParsed = Version.decode(PIVOT_996_INPUT);
+        Version jvmVersionExplicit = new Version(8, 1, 28, 0, 
PIVOT_996_SUFFIX);
+        String parsedToString = jvmVersionParsed.toString();
+
+        System.out.println("Information only: our version = " + 
Version.implementationVersion());
+
+        assertEquals("PIVOT-996 test case", jvmVersionExplicit, 
jvmVersionParsed);
+        System.out.format("PIVOT-996 parsed/toString: %1$s, expected: %2$s%n",
+            parsedToString, PIVOT_996_OUTPUT);
+        assertEquals("PIVOT-996 toString", PIVOT_996_OUTPUT, parsedToString);
+
+        Pattern versionPattern = Pattern.compile("(\\d+(\\.\\d+\\.\\d+)?).*");
+        String sysJavaVersion = System.getProperty("java.runtime.version");
+        Version javaVersion = Version.decode(sysJavaVersion);
+        String formattedJavaVersion = javaVersion.toString();
+        String simpleVersion = javaVersion.simpleToString();
+        System.out.format("Java Runtime version (parsed and formatted): %1$s, 
raw: %2$s, simple: %3$s%n",
+            formattedJavaVersion, sysJavaVersion, simpleVersion);
+        Matcher sysMatcher = versionPattern.matcher(sysJavaVersion);
+        boolean matches = sysMatcher.matches()
+            && simpleVersion.startsWith(sysMatcher.group(1));
+        assertTrue("Java Runtime version match", matches);
+
+        String newJava9Version = "9-ea+19";
+        Version newJava9 = Version.decode(newJava9Version);
+        String newJava9Formatted = newJava9.toString();
+        System.out.format("Potential new Java version: %1$s, parsed and 
formatted: %2$s%n",
+            newJava9Version, newJava9Formatted);
+        assertEquals("new Java 9 version", "9.0.0_00-ea+19", 
newJava9Formatted);
+
+        String newJava10Version = "10+-ea";
+        Version newJava10 = Version.decode(newJava10Version);
+        String newJava10Formatted = newJava10.toString();
+        System.out.format("Potential new Java 10 version: %1$s, parsed and 
formatted: %2$s%n",
+            newJava10Version, newJava10Formatted);
+        assertEquals("new Java 10 version", "10.0.0_00--ea", 
newJava10Formatted);
+    }
+
+    /**
+     * Complete test of the new version strings possible with Java 9
+     * (taken from <a 
href="http://openjdk.java.net/jeps/223";>http://openjdk.java.net/jeps/223</a>).
+     */
+    @Test
+    public void testJava9Versions() {
+        String[] versions = {
+            "9-ea+19",
+            "9+100",
+            "9.0.1+20",
+            "9.0.2+12",
+            "9.1.2+62",
+            "9.1.3+15",
+            "9.1.4+8",
+            "9.2.4+45",
+            "7.4.10+11",
+            "7.4.11+15",
+            "7.5.11+43",
+            "7.5.12+18",
+            "7.5.13+13",
+            "7.5.14+13",
+            "7.6.14+19",
+            "7.6.15+20",
+            "9-ea",
+            "9-ea+73",
+            "9+100",
+            "9",
+            "9.1.2",
+            "9.1.2+62",
+            "9.0.1",
+            "9.0.1+20"
+        };
+
+        // Just make sure we don't throw or get other errors decoding all these
+        for (String version : versions) {
+            Version v = Version.decode(version);
+            System.out.format("Raw %1$s -> %2$s%n", version, v.toString());
+        }
+    }
+
+    /**
+     * Test the new {@link Version#safelyDecode}.
+     */
+    @Test
+    public void testSafelyDecode() {
+        try {
+            Version junk = Version.safelyDecode("this is junk");
+            assertEquals("safely decode default", EMPTY, junk);
+        } catch (Exception ex) {
+            fail("safelyDecode threw an exception: " + ex.getMessage());
+        }
+    }
+}
+

Propchange: pivot/trunk/core/test/org/apache/pivot/util/test/VersionTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: pivot/trunk/core/test/org/apache/pivot/util/test/VoteResultTest.java
URL: 
http://svn.apache.org/viewvc/pivot/trunk/core/test/org/apache/pivot/util/test/VoteResultTest.java?rev=1913470&r1=1913469&r2=1913470&view=diff
==============================================================================
--- pivot/trunk/core/test/org/apache/pivot/util/test/VoteResultTest.java 
(original)
+++ pivot/trunk/core/test/org/apache/pivot/util/test/VoteResultTest.java Tue 
Oct 31 19:15:47 2023
@@ -1,59 +1,59 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.pivot.util.test;
-
-import static org.junit.Assert.assertEquals;
-
-import java.util.Iterator;
-import org.junit.Test;
-
-import org.apache.pivot.collections.ArrayList;
-import org.apache.pivot.util.Vote;
-import org.apache.pivot.util.VoteResult;
-
-
-/**
- * Tests of the {@link VoteResult} class; used for tabulating votes
- * inside of lambda functions.
- */
-public class VoteResultTest {
-    /**
-     * Run the basic tests.
-     */
-    @Test
-    public void test1() {
-        ArrayList<Vote> votes = new ArrayList<>();
-        votes.add(Vote.APPROVE);
-        votes.add(Vote.DEFER);
-        votes.add(Vote.DENY);
-
-        // These are the expected results as each vote is tallied
-        ArrayList<Vote> results = new ArrayList<>();
-        results.add(Vote.APPROVE);
-        results.add(Vote.DEFER);
-        results.add(Vote.DENY);
-
-        VoteResult result = new VoteResult();
-        Iterator<Vote> resultIter = results.iterator();
-
-        for (Vote vote : votes) {
-            result.tally(vote);
-            assertEquals(result.get(), resultIter.next());
-        }
-    }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pivot.util.test;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Iterator;
+import org.junit.Test;
+
+import org.apache.pivot.collections.ArrayList;
+import org.apache.pivot.util.Vote;
+import org.apache.pivot.util.VoteResult;
+
+
+/**
+ * Tests of the {@link VoteResult} class; used for tabulating votes
+ * inside of lambda functions.
+ */
+public class VoteResultTest {
+    /**
+     * Run the basic tests.
+     */
+    @Test
+    public void test1() {
+        ArrayList<Vote> votes = new ArrayList<>();
+        votes.add(Vote.APPROVE);
+        votes.add(Vote.DEFER);
+        votes.add(Vote.DENY);
+
+        // These are the expected results as each vote is tallied
+        ArrayList<Vote> results = new ArrayList<>();
+        results.add(Vote.APPROVE);
+        results.add(Vote.DEFER);
+        results.add(Vote.DENY);
+
+        VoteResult result = new VoteResult();
+        Iterator<Vote> resultIter = results.iterator();
+
+        for (Vote vote : votes) {
+            result.tally(vote);
+            assertEquals(result.get(), resultIter.next());
+        }
+    }
+
+}

Propchange: pivot/trunk/core/test/org/apache/pivot/util/test/VoteResultTest.java
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to