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