diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2019-08-30 20:56:26 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2019-09-05 16:55:45 +0300 |
commit | 1ad6dad8da0d51e9522f9d27cf48531fa23b24ba (patch) | |
tree | 4f53f85678348e605d282bad20b327653faa0729 /bpkg/satisfaction.test.cxx | |
parent | 7b5a0b55569331560f9cb6439ee818c3ce5d8428 (diff) |
Adapt to optional package revision
Diffstat (limited to 'bpkg/satisfaction.test.cxx')
-rw-r--r-- | bpkg/satisfaction.test.cxx | 58 |
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); +} |