File indexing completed on 2023-05-05 02:47:24
0001 #include "cppunit/extensions/HelperMacros.h"
0002 #include <algorithm>
0003 #include <iterator>
0004 #include <iostream>
0005 #include "DataFormats/Common/interface/AssociationMap.h"
0006
0007 class testOneToManyAssociation : public CppUnit::TestFixture {
0008 CPPUNIT_TEST_SUITE(testOneToManyAssociation);
0009 CPPUNIT_TEST(checkAll);
0010 CPPUNIT_TEST_SUITE_END();
0011
0012 public:
0013 void setUp() {}
0014 void tearDown() {}
0015 void checkAll();
0016 void dummy();
0017 };
0018
0019 CPPUNIT_TEST_SUITE_REGISTRATION(testOneToManyAssociation);
0020
0021 void testOneToManyAssociation::checkAll() {
0022 typedef std::vector<int> CKey;
0023 typedef std::vector<double> CVal;
0024 typedef edm::AssociationMap<edm::OneToMany<CKey, CVal, unsigned char> > Assoc;
0025 Assoc v;
0026 CPPUNIT_ASSERT(v.empty());
0027 CPPUNIT_ASSERT(v.size() == 0);
0028 }
0029
0030
0031 void testOneToManyAssociation::dummy() {
0032 typedef std::vector<int> CKey;
0033 typedef std::vector<double> CVal;
0034 {
0035 typedef edm::AssociationMap<edm::OneToMany<CKey, CVal, unsigned char> > Assoc;
0036 Assoc v;
0037 v.insert(edm::Ref<CKey>(), edm::Ref<CVal>());
0038 v.insert(Assoc::value_type(edm::Ref<CKey>(), edm::RefVector<CVal>()));
0039 Assoc::const_iterator b = v.begin(), e = v.end();
0040 ++b;
0041 ++e;
0042 Assoc::const_iterator f = v.find(edm::Ref<CKey>());
0043 v.numberOfAssociations(edm::Ref<CKey>());
0044 const edm::RefVector<CVal>& x = v[edm::Ref<CKey>()];
0045 int n = x.size();
0046 ++f;
0047 n = v.numberOfAssociations(edm::Ref<CKey>());
0048 ++n;
0049 std::cout << "numberOfAssociations:" << n << std::endl;
0050 edm::Ref<Assoc> r;
0051 v[edm::Ref<CKey>()];
0052 v.erase(edm::Ref<CKey>());
0053 v.clear();
0054 CPPUNIT_ASSERT(v.size() == 0);
0055 v.post_insert();
0056 }
0057 {
0058 typedef edm::AssociationMap<edm::OneToManyWithQuality<CKey, CVal, double, unsigned char> > Assoc;
0059 Assoc v;
0060 v.insert(edm::Ref<CKey>(), std::make_pair(edm::Ref<CVal>(), 3.14));
0061 Assoc::const_iterator b = v.begin(), e = v.end();
0062 ++b;
0063 ++e;
0064 Assoc::const_iterator f = v.find(edm::Ref<CKey>());
0065 v.numberOfAssociations(edm::Ref<CKey>());
0066 const std::vector<std::pair<edm::Ref<CVal>, double> >& x = v[edm::Ref<CKey>()];
0067 int n = x.size();
0068 ++f;
0069 n = v.numberOfAssociations(edm::Ref<CKey>());
0070 ++n;
0071 std::cout << "numberOfAssociations:" << n << std::endl;
0072 edm::Ref<Assoc> r;
0073 v[edm::Ref<CKey>()];
0074 v.erase(edm::Ref<CKey>());
0075 v.clear();
0076 CPPUNIT_ASSERT(v.size() == 0);
0077 v.post_insert();
0078 }
0079 }