1 // Copyright (C) 2004, 2009 Free Software Foundation, Inc. 2// 3// This file is part of the GNU ISO C++ Library. This library is free 4// software; you can redistribute it and/or modify it under the 5// terms of the GNU General Public License as published by the 6// Free Software Foundation; either version 3, or (at your option) 7// any later version. 8 9// This library is distributed in the hope that it will be useful, 10// but WITHOUT ANY WARRANTY; without even the implied warranty of 11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12// GNU General Public License for more details. 13 14// You should have received a copy of the GNU General Public License along 15// with this library; see the file COPYING3. If not see 16// <http://www.gnu.org/licenses/>. 17 18 19#include <string> 20#include <testsuite_performance.h> 21 22void 23test_pair(const std::string& s, const std::string& f, int n) 24{ 25 std::string::size_type sz = 0; 26 27 for (int i = 0; i < n; ++i) 28 sz = s.find(f); 29} 30 31int main() 32{ 33 using namespace std; 34 using namespace __gnu_test; 35 36 time_counter time; 37 resource_counter resource; 38 39 const unsigned int iterations = 2000000; 40 41 string s, f; 42 s = "aabbaabbaaxd adbffdadgaxaabbbddhatyaaaabbbaabbaabbcsy"; 43 f = "aabbaabbc"; 44 start_counters(time, resource); 45 test_pair(s, f, iterations); 46 stop_counters(time, resource); 47 report_performance(__FILE__, "1", time, resource); 48 clear_counters(time, resource); 49 50 f = "aabbb"; 51 start_counters(time, resource); 52 test_pair(s, f, iterations); 53 stop_counters(time, resource); 54 report_performance(__FILE__, "2", time, resource); 55 clear_counters(time, resource); 56 57 f = "xd"; 58 start_counters(time, resource); 59 test_pair(s, f, iterations); 60 stop_counters(time, resource); 61 report_performance(__FILE__, "3", time, resource); 62 clear_counters(time, resource); 63 64 s = "dhruv is a very very good boy ;-)"; 65 f = "very"; 66 start_counters(time, resource); 67 test_pair(s, f, iterations); 68 stop_counters(time, resource); 69 report_performance(__FILE__, "4", time, resource); 70 clear_counters(time, resource); 71 72 f = "bad"; 73 start_counters(time, resource); 74 test_pair(s, f, iterations); 75 stop_counters(time, resource); 76 report_performance(__FILE__, "5", time, resource); 77 clear_counters(time, resource); 78 79 f = "extra irritating"; 80 start_counters(time, resource); 81 test_pair(s, f, iterations); 82 stop_counters(time, resource); 83 report_performance(__FILE__, "6", time, resource); 84 clear_counters(time, resource); 85 86 s = "this is a very this is a very this is a verty this is a very " 87 "this is a very long sentence"; 88 f = "this is a very long sentence"; 89 start_counters(time, resource); 90 test_pair(s, f, iterations); 91 stop_counters(time, resource); 92 report_performance(__FILE__, "7", time, resource); 93 clear_counters(time, resource); 94 95 return 0; 96} 97