mirror of
https://github.com/Nuitka/Nuitka.git
synced 2026-02-01 11:33:19 +01:00
110 lines
2.2 KiB
Python
110 lines
2.2 KiB
Python
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
|
|
|
|
# This test is SPECIAL. Everything in here, MUST be statically optimized,
|
|
# and be a print of a constant, or a function that becomes a return value
|
|
# that is constant.
|
|
|
|
print(not bool)
|
|
print(not {})
|
|
print(not 7)
|
|
print(bool or len)
|
|
print(False or dict)
|
|
print(type(Ellipsis))
|
|
print("a" in "abba")
|
|
print("a" not in "abba")
|
|
print(len("a" * 10000))
|
|
print(len(10000 * "a"))
|
|
print(len((1,) * 20000))
|
|
print(len(20000 * (1,)))
|
|
print(len([1] * 30000))
|
|
print(len(30000 * [1]))
|
|
print(len(unicode("a") * 40000))
|
|
print(len(40000 * unicode("a")))
|
|
|
|
|
|
# For operations, we use function return values of local variables that will
|
|
# have to become constant.
|
|
def simpleAssignment():
|
|
x = 2
|
|
return x
|
|
|
|
|
|
def inplaceOperationIncrement():
|
|
x = 2
|
|
x += 1
|
|
return x
|
|
|
|
|
|
def inplaceOperationProduct():
|
|
x = 2
|
|
x *= 2
|
|
return x
|
|
|
|
|
|
def inplaceOperationPower():
|
|
x = 2
|
|
x **= 2
|
|
return x
|
|
|
|
|
|
def inplaceOperationDecrement():
|
|
x = 2
|
|
x -= 8
|
|
return x
|
|
|
|
|
|
# x //= 5
|
|
def inplaceOperationFloorDivision():
|
|
x = 2
|
|
x //= 5
|
|
return x
|
|
|
|
|
|
def inplaceOperationModulus():
|
|
x = 2
|
|
x %= 3
|
|
return x
|
|
|
|
|
|
def inplaceOperationAnd():
|
|
x = 2
|
|
x &= 2
|
|
return x
|
|
|
|
|
|
def inplaceOperationOr():
|
|
x = 2
|
|
x |= 5
|
|
return x
|
|
|
|
|
|
def inplaceOperationXor():
|
|
x = 2
|
|
x ^= 1
|
|
return x
|
|
|
|
|
|
def inplaceOperationDivision():
|
|
x = 2
|
|
x /= 2
|
|
return x
|
|
|
|
|
|
# Python test originally created or extracted from other peoples work. The
|
|
# parts from me are licensed as below. It is at least Free Software where
|
|
# it's copied from other people. In these cases, that will normally be
|
|
# indicated.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|