File size: 4,058 Bytes
b7d9967 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# This code is part of a Qiskit project.
#
# (C) Copyright IBM 2019, 2023.
#
# This code is licensed under the Apache License, Version 2.0. You may
# obtain a copy of this license in the LICENSE.txt file in the root directory
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
#
# Any modifications or derivative works of this code must retain this
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""
Validation module
"""
from typing import Set
def validate_in_set(name: str, value: object, values: Set[object]) -> None:
"""
Args:
name: value name.
value: value to check.
values: set that should contain value.
Raises:
ValueError: invalid value
"""
if value not in values:
raise ValueError(f"{name} must be one of '{values}', was '{value}'.")
def validate_min(name: str, value: float, minimum: float) -> None:
"""
Args:
name: value name.
value: value to check.
minimum: minimum value allowed.
Raises:
ValueError: invalid value
"""
if value < minimum:
raise ValueError(f"{name} must have value >= {minimum}, was {value}")
def validate_min_exclusive(name: str, value: float, minimum: float) -> None:
"""
Args:
name: value name.
value: value to check.
minimum: minimum value allowed.
Raises:
ValueError: invalid value
"""
if value <= minimum:
raise ValueError(f"{name} must have value > {minimum}, was {value}")
def validate_max(name: str, value: float, maximum: float) -> None:
"""
Args:
name: value name.
value: value to check.
maximum: maximum value allowed.
Raises:
ValueError: invalid value
"""
if value > maximum:
raise ValueError(f"{name} must have value <= {maximum}, was {value}")
def validate_max_exclusive(name: str, value: float, maximum: float) -> None:
"""
Args:
name: value name.
value: value to check.
maximum: maximum value allowed.
Raises:
ValueError: invalid value
"""
if value >= maximum:
raise ValueError(f"{name} must have value < {maximum}, was {value}")
def validate_range(name: str, value: float, minimum: float, maximum: float) -> None:
"""
Args:
name: value name.
value: value to check.
minimum: minimum value allowed.
maximum: maximum value allowed.
Raises:
ValueError: invalid value
"""
if value < minimum or value > maximum:
raise ValueError(f"{name} must have value >= {minimum} and <= {maximum}, was {value}")
def validate_range_exclusive(name: str, value: float, minimum: float, maximum: float) -> None:
"""
Args:
name: value name.
value: value to check.
minimum: minimum value allowed.
maximum: maximum value allowed.
Raises:
ValueError: invalid value
"""
if value <= minimum or value >= maximum:
raise ValueError(f"{name} must have value > {minimum} and < {maximum}, was {value}")
def validate_range_exclusive_min(name: str, value: float, minimum: float, maximum: float) -> None:
"""
Args:
name: value name.
value: value to check.
minimum: minimum value allowed.
maximum: maximum value allowed.
Raises:
ValueError: invalid value
"""
if value <= minimum or value > maximum:
raise ValueError(f"{name} must have value > {minimum} and <= {maximum}, was {value}")
def validate_range_exclusive_max(name: str, value: float, minimum: float, maximum: float) -> None:
"""
Args:
name: value name.
value: value to check.
minimum: minimum value allowed.
maximum: maximum value allowed.
Raises:
ValueError: invalid value
"""
if value < minimum or value >= maximum:
raise ValueError(f"{name} must have value >= {minimum} and < {maximum}, was {value}")
|