diff options
Diffstat (limited to 'sources/shiboken2/tests/samplebinding/implicitconv_numerical_test.py')
-rw-r--r-- | sources/shiboken2/tests/samplebinding/implicitconv_numerical_test.py | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/sources/shiboken2/tests/samplebinding/implicitconv_numerical_test.py b/sources/shiboken2/tests/samplebinding/implicitconv_numerical_test.py deleted file mode 100644 index 6ebca790c..000000000 --- a/sources/shiboken2/tests/samplebinding/implicitconv_numerical_test.py +++ /dev/null @@ -1,151 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -############################################################################# -## -## Copyright (C) 2016 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the test suite of Qt for Python. -## -## $QT_BEGIN_LICENSE:GPL-EXCEPT$ -## Commercial License Usage -## Licensees holding valid commercial Qt licenses may use this file in -## accordance with the commercial license agreement provided with the -## Software or, alternatively, in accordance with the terms contained in -## a written agreement between you and The Qt Company. For licensing terms -## and conditions see https://www.qt.io/terms-conditions. For further -## information use the contact form at https://www.qt.io/contact-us. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 3 as published by the Free Software -## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# - -'''Test case for inplicit converting C++ numeric types.''' - -import unittest -import sys -import sample -from py3kcompat import IS_PY3K, l, long - -# Hardcode the limits of the underlying C-types depending on architecture and memory -# model (taking MSVC using LLP64 into account). -cIntMin = -2147483648 -cIntMax = 2147483647 -cLongMin = cIntMin -cLongMax = cIntMax -maxRepresentableInt = sys.maxsize if IS_PY3K else sys.maxint -is64bitArchitecture = maxRepresentableInt > 2**32 -if is64bitArchitecture and sys.platform != 'win32': - cLongMin = -9223372036854775808 - cLongMax = 9223372036854775807 - -class NumericTester(unittest.TestCase): - '''Helper class for numeric comparison testing''' - - def check_value(self, source, expected, callback, desired_type=None): - result = callback(source) - self.assertEqual(result, expected) - - if desired_type: - self.assertEqual(type(result), desired_type) - - -class FloatImplicitConvert(NumericTester): - '''Test case for implicit converting C++ numeric types.''' - - def testFloatAsInt(self): - '''Float as Int''' - self.check_value(3.14, 3, sample.acceptInt, int) - self.assertRaises(OverflowError, sample.acceptInt, cIntMax + 400) - - def testFloatAsLong(self): - '''Float as Long''' - #C++ longs are python ints for us - self.check_value(3.14, 3, sample.acceptLong, int) - self.assertRaises(OverflowError, sample.acceptLong, cLongMax + 400) - - def testFloatAsUInt(self): - '''Float as unsigned Int''' - self.check_value(3.14, 3, sample.acceptUInt, long) - self.assertRaises(OverflowError, sample.acceptUInt, -3.14) - - def testFloatAsULong(self): - '''Float as unsigned Long''' - #FIXME Breaking with SystemError "bad argument to internal function" - self.check_value(3.14, 3, sample.acceptULong, long) - self.assertRaises(OverflowError, sample.acceptULong, -3.14) - - def testFloatAsDouble(self): - '''Float as double''' - self.check_value(3.14, 3.14, sample.acceptDouble, float) - - -class IntImplicitConvert(NumericTester): - '''Test case for implicit converting C++ numeric types.''' - - def testIntAsInt(self): - '''Int as Int''' - self.check_value(3, 3, sample.acceptInt, int) - - def testIntAsLong(self): - '''Int as Long''' - self.check_value(3, 3, sample.acceptLong, int) - - # cLongMax goes here as CPython implements int as a C long - self.check_value(cLongMax, cLongMax, sample.acceptLong, int) - self.check_value(cLongMin, cLongMin, sample.acceptLong, int) - - def testIntAsUInt(self): - '''Int as unsigned Int''' - self.check_value(3, 3, sample.acceptUInt, long) - self.assertRaises(OverflowError, sample.acceptUInt, -3) - - def testIntAsULong(self): - '''Int as unsigned Long''' - self.check_value(3, 3, sample.acceptULong, long) - self.assertRaises(OverflowError, sample.acceptULong, -3) - - def testFloatAsDouble(self): - '''Float as double''' - self.check_value(3.14, 3.14, sample.acceptDouble, float) - - -class LongImplicitConvert(NumericTester): - '''Test case for implicit converting C++ numeric types.''' - - def testLongAsInt(self): - '''Long as Int''' - self.check_value(l(24224), 24224, sample.acceptInt, int) - self.assertRaises(OverflowError, sample.acceptInt, cIntMax + 20) - - def testLongAsLong(self): - '''Long as Long''' - self.check_value(l(2405), 2405, sample.acceptLong, int) - self.assertRaises(OverflowError, sample.acceptLong, cLongMax + 20) - - def testLongAsUInt(self): - '''Long as unsigned Int''' - self.check_value(l(260), 260, sample.acceptUInt, long) - self.assertRaises(OverflowError, sample.acceptUInt, -42) - - def testLongAsULong(self): - '''Long as unsigned Long''' - self.check_value(l(128), 128, sample.acceptULong, long) - self.assertRaises(OverflowError, sample.acceptULong, l(-334)) - - def testLongAsDouble(self): - '''Float as double''' - self.check_value(l(42), 42, sample.acceptDouble, float) - - -if __name__ == '__main__': - unittest.main() |