12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #include <catch2/catch_test_macros.hpp>
- SCENARIO( "vectors can be sized and resized", "[vector]" ) {
- GIVEN( "A vector with some items" ) {
- std::vector<int> v( 5 );
- REQUIRE( v.size() == 5 );
- REQUIRE( v.capacity() >= 5 );
- WHEN( "the size is increased" ) {
- v.resize( 10 );
- THEN( "the size and capacity change" ) {
- REQUIRE( v.size() == 10 );
- REQUIRE( v.capacity() >= 10 );
- }
- }
- WHEN( "the size is reduced" ) {
- v.resize( 0 );
- THEN( "the size changes but not capacity" ) {
- REQUIRE( v.size() == 0 );
- REQUIRE( v.capacity() >= 5 );
- }
- }
- WHEN( "more capacity is reserved" ) {
- v.reserve( 10 );
- THEN( "the capacity changes but not the size" ) {
- REQUIRE( v.size() == 5 );
- REQUIRE( v.capacity() >= 10 );
- }
- }
- WHEN( "less capacity is reserved" ) {
- v.reserve( 0 );
- THEN( "neither size nor capacity are changed" ) {
- REQUIRE( v.size() == 5 );
- REQUIRE( v.capacity() >= 5 );
- }
- }
- }
- }
|