added tests
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
"""Test package for CI template validation."""
|
||||
|
||||
__version__ = "0.1.0"
|
||||
|
||||
from .calculator import Calculator
|
||||
from .utils import format_number
|
||||
|
||||
__all__ = ["Calculator", "format_number"]
|
||||
@@ -0,0 +1,31 @@
|
||||
"""Calculator module for basic arithmetic operations."""
|
||||
|
||||
from typing import Union
|
||||
|
||||
Number = Union[int, float]
|
||||
|
||||
|
||||
class Calculator:
|
||||
"""A simple calculator class."""
|
||||
|
||||
def add(self, a: Number, b: Number) -> Number:
|
||||
"""Add two numbers."""
|
||||
return a + b
|
||||
|
||||
def subtract(self, a: Number, b: Number) -> Number:
|
||||
"""Subtract b from a."""
|
||||
return a - b
|
||||
|
||||
def multiply(self, a: Number, b: Number) -> Number:
|
||||
"""Multiply two numbers."""
|
||||
return a * b
|
||||
|
||||
def divide(self, a: Number, b: Number) -> float:
|
||||
"""Divide a by b."""
|
||||
if b == 0:
|
||||
raise ValueError("Cannot divide by zero")
|
||||
return a / b
|
||||
|
||||
def power(self, base: Number, exponent: Number) -> Number:
|
||||
"""Raise base to the power of exponent."""
|
||||
return base ** exponent
|
||||
@@ -0,0 +1,24 @@
|
||||
"""Utility functions for the test package."""
|
||||
|
||||
from typing import Union
|
||||
|
||||
|
||||
def format_number(number: Union[int, float], precision: int = 2) -> str:
|
||||
"""Format a number with specified precision."""
|
||||
if isinstance(number, int):
|
||||
return str(number)
|
||||
return f"{number:.{precision}f}"
|
||||
|
||||
|
||||
def is_even(number: int) -> bool:
|
||||
"""Check if a number is even."""
|
||||
return number % 2 == 0
|
||||
|
||||
|
||||
def factorial(n: int) -> int:
|
||||
"""Calculate factorial of a number."""
|
||||
if n < 0:
|
||||
raise ValueError("Factorial is not defined for negative numbers")
|
||||
if n == 0 or n == 1:
|
||||
return 1
|
||||
return n * factorial(n - 1)
|
||||
Reference in New Issue
Block a user