From 1ad6dad8da0d51e9522f9d27cf48531fa23b24ba Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Fri, 30 Aug 2019 20:56:26 +0300 Subject: Adapt to optional package revision --- bpkg/satisfaction.test.cxx | 58 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 bpkg/satisfaction.test.cxx (limited to 'bpkg/satisfaction.test.cxx') 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 + +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); +} -- cgit v1.1