• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //---------------------------------------------------------------------------//
2 // Copyright (c) 2013 Kyle Lutz <kyle.r.lutz@gmail.com>
3 //
4 // Distributed under the Boost Software License, Version 1.0
5 // See accompanying file LICENSE_1_0.txt or copy at
6 // http://www.boost.org/LICENSE_1_0.txt
7 //
8 // See http://boostorg.github.com/compute for more information.
9 //---------------------------------------------------------------------------//
10 
11 #define BOOST_TEST_MODULE TestStack
12 #include <boost/test/unit_test.hpp>
13 
14 #include <boost/compute/container/stack.hpp>
15 
16 #include "context_setup.hpp"
17 
18 namespace bc = boost::compute;
19 
BOOST_AUTO_TEST_CASE(size)20 BOOST_AUTO_TEST_CASE(size)
21 {
22     bc::stack<int> stack;
23     BOOST_CHECK_EQUAL(stack.size(), size_t(0));
24 
25     stack.push(1);
26     stack.push(2);
27     stack.push(3);
28     BOOST_CHECK_EQUAL(stack.size(), size_t(3));
29 }
30 
BOOST_AUTO_TEST_CASE(push_and_pop)31 BOOST_AUTO_TEST_CASE(push_and_pop)
32 {
33     bc::stack<int> stack;
34     stack.push(1);
35     stack.push(2);
36     stack.push(3);
37 
38     BOOST_CHECK_EQUAL(stack.top(), 3);
39     BOOST_CHECK_EQUAL(stack.size(), size_t(3));
40     stack.pop();
41     BOOST_CHECK_EQUAL(stack.top(), 2);
42     BOOST_CHECK_EQUAL(stack.size(), size_t(2));
43     stack.pop();
44     BOOST_CHECK_EQUAL(stack.top(), 1);
45     BOOST_CHECK_EQUAL(stack.size(), size_t(1));
46     stack.pop();
47     BOOST_CHECK_EQUAL(stack.size(), size_t(0));
48 }
49 
50 BOOST_AUTO_TEST_SUITE_END()
51