aboutsummaryrefslogtreecommitdiff
path: root/bpkg/satisfaction.test.cxx
diff options
context:
space:
mode:
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);
+}