@@ -2413,4 +2413,78 @@ mod bench {
2413
2413
assert_eq ! ( v. connect( sep) . len( ) , s. len( ) * 10 + sep. len( ) * 9 ) ;
2414
2414
} )
2415
2415
}
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
+ }
2416
2490
}
0 commit comments