aboutsummaryrefslogtreecommitdiff
path: root/bpkg/satisfaction.test.cxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2019-08-30 20:56:26 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2019-09-05 16:55:45 +0300
commit1ad6dad8da0d51e9522f9d27cf48531fa23b24ba (patch)
tree4f53f85678348e605d282bad20b327653faa0729 /bpkg/satisfaction.test.cxx
parent7b5a0b55569331560f9cb6439ee818c3ce5d8428 (diff)
Adapt to optional package revision
Diffstat (limited to 'bpkg/satisfaction.test.cxx')
-rw-r--r--bpkg/satisfaction.test.cxx58
1 files changed, 58 insertions, 0 deletions
diff --git a/bpkg/satisfaction.test.cxx b/bpkg/satisfaction.test.cxx
new file mode 100644
index 0000000..fef30e1
--- /dev/null
+++ b/bpkg/satisfaction.test.cxx
@@ -0,0 +1,58 @@
+// file : bpkg/satisfaction.test.cxx -*- C++ -*-
+// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
+// license : MIT; see accompanying LICENSE file
+
+#include <bpkg/satisfaction.hxx>
+
+namespace bpkg
+{
+ static int
+ main (int, char*[])
+ {
+ using dc = dependency_constraint;
+
+ assert ( satisfies (dc ("[1.0 2.0]"), dc ("[1.0+0 2.0]")));
+ assert (!satisfies (dc ("[1.0 2.0]"), dc ("[1.0+1 2.0]")));
+ assert ( satisfies (dc ("[1.0+0 2.0]"), dc ("[1.0 2.0]")));
+ assert ( satisfies (dc ("[1.0+1 2.0]"), dc ("[1.0 2.0]")));
+
+ assert (!satisfies (dc ("[1.0+0 2.0]"), dc ("(1.0 2.0]")));
+ assert (!satisfies (dc ("[1.0+1 2.0]"), dc ("(1.0 2.0]")));
+ assert (!satisfies (dc ("(1.0+0 2.0]"), dc ("(1.0 2.0]")));
+ assert (!satisfies (dc ("(1.0+1 2.0]"), dc ("(1.0 2.0]")));
+ assert ( satisfies (dc ("(1.0+0 2.0]"), dc ("[1.0 2.0]")));
+ assert ( satisfies (dc ("(1.0+1 2.0]"), dc ("[1.0 2.0]")));
+
+ assert (!satisfies (dc ("[1.0 2.0+0]"), dc ("[1.0 2.0)")));
+ assert (!satisfies (dc ("[1.0 2.0+1]"), dc ("[1.0 2.0)")));
+ assert ( satisfies (dc ("[1.0 2.0+0)"), dc ("[1.0 2.0)")));
+ assert (!satisfies (dc ("[1.0 2.0+1)"), dc ("[1.0 2.0)")));
+
+ // Swap the above constraints.
+ //
+ assert (!satisfies (dc ("[1.0 2.0]"), dc ("[1.0 2.0+0]")));
+ assert (!satisfies (dc ("[1.0 2.0]"), dc ("[1.0 2.0+1]")));
+ assert ( satisfies (dc ("[1.0 2.0+0]"), dc ("[1.0 2.0]")));
+ assert ( satisfies (dc ("[1.0 2.0+1]"), dc ("[1.0 2.0]")));
+
+ assert ( satisfies (dc ("(1.0 2.0]"), dc ("[1.0+0 2.0]")));
+ assert ( satisfies (dc ("(1.0 2.0]"), dc ("[1.0+1 2.0]")));
+ assert ( satisfies (dc ("(1.0 2.0]"), dc ("(1.0+0 2.0]")));
+ assert ( satisfies (dc ("(1.0 2.0]"), dc ("(1.0+1 2.0]")));
+ assert (!satisfies (dc ("[1.0 2.0]"), dc ("(1.0+0 2.0]")));
+ assert (!satisfies (dc ("[1.0 2.0]"), dc ("(1.0+1 2.0]")));
+
+ assert ( satisfies (dc ("[1.0 2.0)"), dc ("[1.0 2.0+0)")));
+ assert ( satisfies (dc ("[1.0 2.0)"), dc ("[1.0 2.0+1)")));
+ assert (!satisfies (dc ("[1.0 2.0]"), dc ("[1.0 2.0+0)")));
+ assert (!satisfies (dc ("[1.0 2.0]"), dc ("[1.0 2.0+1)")));
+
+ return 0;
+ }
+}
+
+int
+main (int argc, char* argv[])
+{
+ return bpkg::main (argc, argv);
+}