aboutsummaryrefslogtreecommitdiffstats
path: root/host/tests
diff options
context:
space:
mode:
authorBrent Stapleton <brent.stapleton@ettus.com>2018-03-29 18:54:37 -0700
committerMartin Braun <martin.braun@ettus.com>2018-04-02 13:38:45 -0700
commitbaad5d789fde546ed5e3fccd865e49ba15b98145 (patch)
tree21601cf839c87fe1f278c766042f21b05ccdc71b /host/tests
parent3f0e7d405f128e9faeea03cb6f97f25423983e63 (diff)
downloaduhd-baad5d789fde546ed5e3fccd865e49ba15b98145.tar.gz
uhd-baad5d789fde546ed5e3fccd865e49ba15b98145.tar.bz2
uhd-baad5d789fde546ed5e3fccd865e49ba15b98145.zip
lib: adding == and != for uhd::dict
Diffstat (limited to 'host/tests')
-rw-r--r--host/tests/dict_test.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/host/tests/dict_test.cpp b/host/tests/dict_test.cpp
index 6b0285b8a..53432d533 100644
--- a/host/tests/dict_test.cpp
+++ b/host/tests/dict_test.cpp
@@ -84,4 +84,43 @@ BOOST_AUTO_TEST_CASE(test_dict_update)
BOOST_CHECK_THROW(d3.update(d2), uhd::value_error);
}
+BOOST_AUTO_TEST_CASE(test_dict_equals)
+{
+ typedef uhd::dict<std::string, std::string> dict_ss;
+ // Original dict
+ dict_ss d0;
+ d0["key1"] = "val1";
+ d0["key2"] = "val2";
+ // Same keys and vals as d1, but different order
+ dict_ss d1;
+ d1["key2"] = "val2";
+ d1["key1"] = "val1";
+ // Same vals, different keys
+ dict_ss d2;
+ d2["key1"] = "val1";
+ d2["key3"] = "val2";
+ // Same keys, different vals
+ dict_ss d3;
+ d3["key1"] = "val1";
+ d3["key2"] = "val3";
+ // Superset of d0
+ dict_ss d4;
+ d4["key1"] = "val1";
+ d4["key2"] = "val2";
+ d4["key4"] = "val3";
+ // Subset of d0
+ dict_ss d5;
+ d5["key1"] = "val1";
+ // Check that d0 and d1 are equal
+ BOOST_CHECK(d0 == d1);
+ BOOST_CHECK(d1 == d0);
+ // Check that all other dictionaries are not equal to d0
+ BOOST_CHECK(d0 != d2);
+ BOOST_CHECK(d0 != d3);
+ BOOST_CHECK(d0 != d4);
+ BOOST_CHECK(d0 != d5);
+ // Redundant, but just to be sure
+ BOOST_CHECK(not (d0 == d2));
+ BOOST_CHECK(not (d0 == d3));
+}