@@ -2413,4 +2413,78 @@ mod bench {
24132413 assert_eq ! ( v. connect( sep) . len( ) , s. len( ) * 10 + sep. len( ) * 9 ) ;
24142414 } )
24152415 }
2416+
2417+ #[ bench]
2418+ fn bench_contains_short_short ( b : & mut Bencher ) {
2419+ let haystack = "Lorem ipsum dolor sit amet, consectetur adipiscing elit." ;
2420+ let needle = "sit" ;
2421+
2422+ b. iter ( || {
2423+ assert ! ( haystack. contains( needle) ) ;
2424+ } )
2425+ }
2426+
2427+ #[ bench]
2428+ fn bench_contains_short_long ( b : & mut Bencher ) {
2429+ let haystack = "\
2430+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse quis lorem sit amet dolor \
2431+ ultricies condimentum. Praesent iaculis purus elit, ac malesuada quam malesuada in. Duis sed orci \
2432+ eros. Suspendisse sit amet magna mollis, mollis nunc luctus, imperdiet mi. Integer fringilla non \
2433+ sem ut lacinia. Fusce varius tortor a risus porttitor hendrerit. Morbi mauris dui, ultricies nec \
2434+ tempus vel, gravida nec quam.
2435+
2436+ In est dui, tincidunt sed tempus interdum, adipiscing laoreet ante. Etiam tempor, tellus quis \
2437+ sagittis interdum, nulla purus mattis sem, quis auctor erat odio ac tellus. In nec nunc sit amet \
2438+ diam volutpat molestie at sed ipsum. Vestibulum laoreet consequat vulputate. Integer accumsan \
2439+ lorem ac dignissim placerat. Suspendisse convallis faucibus lorem. Aliquam erat volutpat. In vel \
2440+ eleifend felis. Sed suscipit nulla lorem, sed mollis est sollicitudin et. Nam fermentum egestas \
2441+ interdum. Curabitur ut nisi justo.
2442+
2443+ Sed sollicitudin ipsum tellus, ut condimentum leo eleifend nec. Cras ut velit ante. Phasellus nec \
2444+ mollis odio. Mauris molestie erat in arcu mattis, at aliquet dolor vehicula. Quisque malesuada \
2445+ lectus sit amet nisi pretium, a condimentum ipsum porta. Morbi at dapibus diam. Praesent egestas \
2446+ est sed risus elementum, eu rutrum metus ultrices. Etiam fermentum consectetur magna, id rutrum \
2447+ felis accumsan a. Aliquam ut pellentesque libero. Sed mi nulla, lobortis eu tortor id, suscipit \
2448+ ultricies neque. Morbi iaculis sit amet risus at iaculis. Praesent eget ligula quis turpis \
2449+ feugiat suscipit vel non arcu. Interdum et malesuada fames ac ante ipsum primis in faucibus. \
2450+ Aliquam sit amet placerat lorem.
2451+
2452+ Cras a lacus vel ante posuere elementum. Nunc est leo, bibendum ut facilisis vel, bibendum at \
2453+ mauris. Nullam adipiscing diam vel odio ornare, luctus adipiscing mi luctus. Nulla facilisi. \
2454+ Mauris adipiscing bibendum neque, quis adipiscing lectus tempus et. Sed feugiat erat et nisl \
2455+ lobortis pharetra. Donec vitae erat enim. Nullam sit amet felis et quam lacinia tincidunt. Aliquam \
2456+ suscipit dapibus urna. Sed volutpat urna in magna pulvinar volutpat. Phasellus nec tellus ac diam \
2457+ cursus accumsan.
2458+
2459+ Nam lectus enim, dapibus non nisi tempor, consectetur convallis massa. Maecenas eleifend dictum \
2460+ feugiat. Etiam quis mauris vel risus luctus mattis a a nunc. Nullam orci quam, imperdiet id \
2461+ vehicula in, porttitor ut nibh. Duis sagittis adipiscing nisl vitae congue. Donec mollis risus eu \
2462+ leo suscipit, varius porttitor nulla porta. Pellentesque ut sem nec nisi euismod vehicula. Nulla \
2463+ malesuada sollicitudin quam eu fermentum.";
2464+ let needle = "english" ;
2465+
2466+ b. iter ( || {
2467+ assert ! ( !haystack. contains( needle) ) ;
2468+ } )
2469+ }
2470+
2471+ #[ bench]
2472+ fn bench_contains_bad_naive ( b : & mut Bencher ) {
2473+ let haystack = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ;
2474+ let needle = "aaaaaaaab" ;
2475+
2476+ b. iter ( || {
2477+ assert ! ( !haystack. contains( needle) ) ;
2478+ } )
2479+ }
2480+
2481+ #[ bench]
2482+ fn bench_contains_equal ( b : & mut Bencher ) {
2483+ let haystack = "Lorem ipsum dolor sit amet, consectetur adipiscing elit." ;
2484+ let needle = "Lorem ipsum dolor sit amet, consectetur adipiscing elit." ;
2485+
2486+ b. iter ( || {
2487+ assert ! ( haystack. contains( needle) ) ;
2488+ } )
2489+ }
24162490}
0 commit comments