1 //---------------------------------------------------------------------------//
2 // Copyright (c) 2013 Kyle Lutz <kyle.r.lutz@gmail.com>
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
8 // See http://boostorg.github.com/compute for more information.
9 //---------------------------------------------------------------------------//
11 #define BOOST_TEST_MODULE TestString
12 #include <boost/test/unit_test.hpp>
14 #include <boost/compute/container/string.hpp>
15 #include <boost/compute/container/basic_string.hpp>
16 #include <boost/test/output_test_stream.hpp>
18 #include "context_setup.hpp"
19 #include "check_macros.hpp"
21 using boost::test_tools::output_test_stream
;
23 BOOST_AUTO_TEST_CASE(empty
)
25 boost::compute::string str
;
26 BOOST_VERIFY(str
.empty());
29 BOOST_AUTO_TEST_CASE(swap
)
31 // boost::compute::string currently uses only default_queue, default_context,
32 // default_device so this overrides queue variable set in
33 // BOOST_FIXTURE_TEST_SUITE(compute_test, Context) in context_setup.hpp
34 // in case it is not the default_queue
35 boost::compute::command_queue
& queue
=
36 boost::compute::system::default_queue();
38 boost::compute::string str1
= "compute";
39 boost::compute::string str2
= "boost";
40 BOOST_VERIFY(!str2
.empty());
41 BOOST_VERIFY(!str2
.empty());
43 // this macro uses queue variable and it must be default_queue
44 CHECK_STRING_EQUAL(str1
, "boost");
45 CHECK_STRING_EQUAL(str2
, "compute");
48 CHECK_STRING_EQUAL(str1
, "compute");
49 CHECK_STRING_EQUAL(str2
, "");
51 CHECK_STRING_EQUAL(str1
, "");
52 CHECK_STRING_EQUAL(str2
, "compute");
54 CHECK_STRING_EQUAL(str1
, "");
57 BOOST_AUTO_TEST_CASE(size
)
59 boost::compute::string str
= "string";
60 BOOST_VERIFY(!str
.empty());
61 BOOST_CHECK_EQUAL(str
.size(), size_t(6));
62 BOOST_CHECK_EQUAL(str
.length(), size_t(6));
65 BOOST_AUTO_TEST_CASE(find_doctest
)
68 boost::compute::string str
= "boost::compute::string";
69 int pos
= str
.find("::");
71 boost::compute::string pattern
= "string";
72 BOOST_VERIFY(!str
.empty());
73 BOOST_CHECK_EQUAL(str
.find('o'), 1);
74 BOOST_CHECK_NE(str
.find('o'), 2);
75 BOOST_CHECK_EQUAL(str
.find(pattern
), 16);
76 BOOST_CHECK_EQUAL(pos
, 5);
77 BOOST_CHECK_EQUAL(str
.find("@#$"), size_t(-1));
80 BOOST_AUTO_TEST_CASE(outStream
)
82 output_test_stream output
;
83 boost::compute::string str
= "string";
85 BOOST_CHECK(output
.is_equal("string"));
86 BOOST_VERIFY(!output
.is_equal("!@$%"));
89 BOOST_AUTO_TEST_SUITE_END()