1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
/*
*
* Copyright (C) 2009-2022, OFFIS e.V.
* All rights reserved. See COPYRIGHT file for details.
*
* This software and supporting documentation were developed by
*
* OFFIS e.V.
* R&D Division Health
* Escherweg 2
* D-26121 Oldenburg, Germany
*
*
* Module: ofstd
*
* Author: Uli Schlachter
*
* Purpose: test program for class OFMap
*
*/
#include "dcmtk/config/osconfig.h"
#define OFTEST_OFSTD_ONLY
#include "dcmtk/ofstd/oftest.h"
#include "dcmtk/ofstd/ofmap.h"
OFTEST(ofstd_OFMap)
{
OFMap<int, int> m;
OFMap<int, int>::iterator it;
int i;
// Fill a map with some entries
for (i = 1; i <= 6; ++i)
m[i] = i;
// and verify they were really added
OFCHECK_EQUAL(m.size(), 6);
it = m.begin();
OFCHECK(it != m.end());
for (i = 1; i <= 6; ++i)
{
OFCHECK_EQUAL(m[i], i);
OFCHECK_EQUAL(it->first, i);
OFCHECK_EQUAL(it->second, i);
it++;
}
OFCHECK(it == m.end());
// Now check if removing "4" really removes it
it = m.find(4);
OFCHECK(it != m.end());
m.erase(it);
OFCHECK(m.find(4) == m.end());
// Do the same again but using a different function for removing "5"
OFCHECK(m.find(5) != m.end());
m.erase(5);
OFCHECK(m.find(5) == m.end());
// Now remove a range of objects by removing 1 and 2
OFCHECK_EQUAL(m.size(), 4);
m.erase(m.find(1), m.find(3));
OFCHECK_EQUAL(m.size(), 2);
OFCHECK(m.find(2) == m.end());
OFCHECK_EQUAL(m.size(), 2);
OFCHECK_EQUAL(m[3], 3);
// Check whether map is sorted
m.clear();
// Insert values in reverse order
for (i = 0; i < 6 ; ++i)
m[6 - i] = 6 - i;
// Check all elements are stored in sorted order
OFCHECK_EQUAL(m.size(), 6);
it = m.begin();
for (i = 1; i <= 6; ++i)
{
OFCHECK((*it).second == i);
it++;
}
}
|