1#ifndef BOOST_SAFE_NUMERICS_TEST_CHECKED_RIGHT_SHIFT_HPP
2#define BOOST_SAFE_NUMERICS_TEST_CHECKED_RIGHT_SHIFT_HPP
3
4// Copyright (c) 2018 Robert Ramey
5//
6// Distributed under the Boost Software License, Version 1.0. (See
7// accompanying file LICENSE_1_0.txt or copy at
8// http://www.boost.org/LICENSE_1_0.txt)
9
10#include "test_checked_values.hpp"
11
12// test result matrices
13
14// key
15// . success
16// - negative_overflow_error
17// + positive_overflow_error
18// ? range_error
19// n negative_shift, // negative value in shift operator
20// s negative_value_shift, // shift a negative value
21// l shift_too_large, // l/r shift exceeds variable size
22
23constexpr char const * const signed_right_shift_results[] = {
24// 012345678
25/* 0*/ "!!!!!!!!!",
26/* 1*/ "!!!!!!!!!",
27/* 2*/ "!!!++++++",
28/* 3*/ "!!....+++",
29/* 4*/ "!!.....++",
30/* 5*/ ".........",
31/* 6*/ "!!.....--",
32/* 7*/ "!!....---",
33/* 8*/ "!!!------",
34};
35
36constexpr char const * const unsigned_right_shift_results[] = {
37// 0123456
38/* 0*/ "!!!!!!!",
39/* 1*/ "!!!!!!!",
40/* 2*/ "!!!++++",
41/* 3*/ "!!....+",
42/* 4*/ "!!....+",
43/* 5*/ ".......",
44/* 6*/ "!!!----",
45};
46
47#endif // BOOST_SAFE_NUMERICS_TEST_CHECKED_RIGHT_SHIFT_HPP
48

source code of boost/libs/safe_numerics/test/test_checked_right_shift.hpp