Add property-based tests and fix the bugs discovered.

Change-Id: I8deb1a7d75078c037714541d8f6f656052c2476c
diff --git a/jgvariant-parent/pom.xml b/jgvariant-parent/pom.xml
index 5444b7d..283c62a 100644
--- a/jgvariant-parent/pom.xml
+++ b/jgvariant-parent/pom.xml
@@ -76,6 +76,7 @@
     <guava.version>32.1.3-jre</guava.version>
     <inject-resources.version>0.3.3</inject-resources.version>
     <jetbrains-annotations.version>24.1.0</jetbrains-annotations.version>
+    <jqwik.version>1.8.2</jqwik.version>
     <junit-jupiter.version>5.10.1</junit-jupiter.version>
     <nullaway.version>0.10.18</nullaway.version>
     <picocli.version>4.7.5</picocli.version>
@@ -156,6 +157,12 @@
         <version>${inject-resources.version}</version>
         <scope>test</scope>
       </dependency>
+      <dependency>
+        <groupId>net.jqwik</groupId>
+        <artifactId>jqwik</artifactId>
+        <version>${jqwik.version}</version>
+        <scope>test</scope>
+      </dependency>
     </dependencies>
   </dependencyManagement>