]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/compute/test/test_string.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / compute / test / test_string.cpp
CommitLineData
7c673cae
FG
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 TestString
12#include <boost/test/unit_test.hpp>
13
14#include <boost/compute/container/string.hpp>
15#include <boost/compute/container/basic_string.hpp>
16#include <boost/test/output_test_stream.hpp>
17
18#include "context_setup.hpp"
19#include "check_macros.hpp"
20
21using boost::test_tools::output_test_stream;
22
23BOOST_AUTO_TEST_CASE(empty)
24{
25 boost::compute::string str;
26 BOOST_VERIFY(str.empty());
27}
28
29BOOST_AUTO_TEST_CASE(swap)
30{
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();
37
38 boost::compute::string str1 = "compute";
39 boost::compute::string str2 = "boost";
40 BOOST_VERIFY(!str2.empty());
41 BOOST_VERIFY(!str2.empty());
42 str1.swap(str2);
43 // this macro uses queue variable and it must be default_queue
44 CHECK_STRING_EQUAL(str1, "boost");
45 CHECK_STRING_EQUAL(str2, "compute");
46 str1.clear();
47 str1.swap(str2);
48 CHECK_STRING_EQUAL(str1, "compute");
49 CHECK_STRING_EQUAL(str2, "");
50 str2.swap(str1);
51 CHECK_STRING_EQUAL(str1, "");
52 CHECK_STRING_EQUAL(str2, "compute");
53 str1.swap(str1);
54 CHECK_STRING_EQUAL(str1, "");
55}
56
57BOOST_AUTO_TEST_CASE(size)
58{
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));
63}
64
65BOOST_AUTO_TEST_CASE(find_doctest)
66{
67//! [string_find]
68boost::compute::string str = "boost::compute::string";
69int pos = str.find("::");
70//! [string_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));
78}
79
80BOOST_AUTO_TEST_CASE(outStream)
81{
82 output_test_stream output;
83 boost::compute::string str = "string";
84 output<<str;
85 BOOST_CHECK(output.is_equal("string"));
86 BOOST_VERIFY(!output.is_equal("!@$%"));
87}
88
89BOOST_AUTO_TEST_SUITE_END()