13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/*-------------------------------------------------------------------------
23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * drawElements C++ Base Library
33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * -----------------------------
43c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
53c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Copyright 2014 The Android Open Source Project
63c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Licensed under the Apache License, Version 2.0 (the "License");
83c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * you may not use this file except in compliance with the License.
93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * You may obtain a copy of the License at
103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *      http://www.apache.org/licenses/LICENSE-2.0
123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Unless required by applicable law or agreed to in writing, software
143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * distributed under the License is distributed on an "AS IS" BASIS,
153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * See the License for the specific language governing permissions and
173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * limitations under the License.
183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*!
203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \file
213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \brief Utilities for STL containers.
223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*--------------------------------------------------------------------*/
233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "deSTLUtil.hpp"
253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <map>
273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <set>
283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
293c827367444ee418f129b2c238299f49d3264554Jarkko Poyryusing std::map;
303c827367444ee418f129b2c238299f49d3264554Jarkko Poyryusing std::set;
313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
323c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace de
333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
353c827367444ee418f129b2c238299f49d3264554Jarkko Poyryvoid STLUtil_selfTest (void)
363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		map<int, int> m;
393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		insert(m, 4, 5);
403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(contains(m, 4));
413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(lookup(m, 4) == 5);
423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(*tryLookup(m, 4) == 5);
433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(!contains(m, 3));
443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(tryLookup(m, 3) == DE_NULL);
453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(lookupDefault(m, 3, 7) == 7);
463fdee359c9eee4d6c1d823b23f7f64631b5945f8Jarkko Pöyry	}
473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		set<int> s1;
503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		s1.insert(2);
513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		s1.insert(3);
523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(contains(s1, 2));
533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(contains(s1, 3));
543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(!contains(s1, 5));
553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		set<int> s2;
573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		s2.insert(3);
583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		s2.insert(5);
593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(!contains(s2, 2));
603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(contains(s2, 3));
613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(contains(s2, 5));
623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		set<int> si = intersection(s1, s2);
643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(!contains(si, 2));
653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(contains(si, 3));
663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(!contains(si, 5));
673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		set<int> su = set_union(s1, s2);
693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(contains(su, 2));
703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(contains(su, 3));
713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		DE_TEST_ASSERT(contains(su, 5));
723fdee359c9eee4d6c1d823b23f7f64631b5945f8Jarkko Pöyry	}
733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}
743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}
76