safe_numerics/test/test_checked_right_shift.hpp
Robert Ramey a06d9f7a69 added constexpr tests to checked result operations
added tests for check result < and == operations
correct implementation of some checked result types
added constexpr example
2018-12-10 14:12:47 -08:00

48 lines
1.2 KiB
C++

#ifndef BOOST_SAFE_NUMERICS_TEST_CHECKED_RIGHT_SHIFT_HPP
#define BOOST_SAFE_NUMERICS_TEST_CHECKED_RIGHT_SHIFT_HPP
// Copyright (c) 2018 Robert Ramey
//
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#include "test_checked_values.hpp"
// test result matrices
// key
// . success
// - negative_overflow_error
// + positive_overflow_error
// ? range_error
// n negative_shift, // negative value in shift operator
// s negative_value_shift, // shift a negative value
// l shift_too_large, // l/r shift exceeds variable size
constexpr char const * const signed_right_shift_results[] = {
// 012345678
/* 0*/ "!!!!!!!!!",
/* 1*/ "!!!!!!!!!",
/* 2*/ "!!!++++++",
/* 3*/ "!!....+++",
/* 4*/ "!!.....++",
/* 5*/ ".........",
/* 6*/ "!!.....--",
/* 7*/ "!!....---",
/* 8*/ "!!!------",
};
constexpr char const * const unsigned_right_shift_results[] = {
// 0123456
/* 0*/ "!!!!!!!",
/* 1*/ "!!!!!!!",
/* 2*/ "!!!++++",
/* 3*/ "!!....+",
/* 4*/ "!!....+",
/* 5*/ ".......",
/* 6*/ "!!!----",
};
#endif // BOOST_SAFE_NUMERICS_TEST_CHECKED_RIGHT_SHIFT_HPP