1 ///////////////////////////////////////////////////////////////////////////////
2 //
3 // Copyright (c) 2015 Microsoft Corporation. All rights reserved.
4 //
5 // This code is licensed under the MIT License (MIT).
6 //
7 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
8 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
9 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
10 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
11 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
12 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
13 // THE SOFTWARE.
14 //
15 ///////////////////////////////////////////////////////////////////////////////
16
17 #include <catch/catch.hpp>
18
19 #include <gsl/gsl>
20
21 using namespace gsl;
22
f(int i)23 int f(int i)
24 {
25 Expects(i > 0 && i < 10);
26 return i;
27 }
28
29 TEST_CASE("expects")
30 {
31 CHECK(f(2) == 2);
32 CHECK_THROWS_AS(f(10), fail_fast);
33 }
34
g(int i)35 int g(int i)
36 {
37 i++;
38 Ensures(i > 0 && i < 10);
39 return i;
40 }
41
42 TEST_CASE("ensures")
43 {
44 CHECK(g(2) == 3);
45 CHECK_THROWS_AS(g(9), fail_fast);
46 }
47