Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pytest
- class Battery:
- def __init__(self):
- self._charge_level = 100
- def charge(self, amount:int):
- if amount < 0:
- raise ValueError("Nie można naładować ujemnej ilości energii.")
- self._charge_level = min(100, self._charge_level + amount)
- def discharge(self, amount):
- if amount < 0:
- raise ValueError("Nie można zużyć ujemnej ilości energii.")
- if amount > self._charge_level:
- raise ValueError("Nie można rozładować baterii poniżej 0%.")
- self._charge_level -= amount
- def get_charge_level(self):
- return self._charge_level
- class ElectricCar:
- def __init__(self, brand: str, model:str):
- self.brand = brand
- self.model = model
- self.battery = Battery()
- def drive(self, distance):
- if distance < 0:
- raise ValueError("Nie można przejechać ujemnej odległości.")
- self.battery.discharge(distance)
- print(f"Przejechano {distance} km. Pozostały poziom baterii: {self.battery.get_charge_level()}%")
- def charge_battery(self, amount):
- self.battery.charge(amount)
- print(f"Bateria naładowana o {amount}%. Aktualny poziom: {self.battery.get_charge_level()}%")
- def get_battery_status(self):
- return f"Poziom naładowania baterii: {self.battery.get_charge_level()}%"
- def test_battery_initial_charge():
- battery = Battery()
- assert battery.get_charge_level() == 100
- def test_battery_charge():
- battery = Battery()
- battery.charge(10)
- assert battery.get_charge_level() == 100 # Nie może przekroczyć 100%
- battery.discharge(30)
- battery.charge(20)
- assert battery.get_charge_level() == 90
- def test_battery_discharge():
- battery = Battery()
- battery.discharge(30)
- assert battery.get_charge_level() == 70
- with pytest.raises(ValueError, match="Nie można rozładować baterii poniżej 0%."):
- battery.discharge(100)
- def test_battery_negative_charge():
- battery = Battery()
- with pytest.raises(ValueError, match="Nie można naładować ujemnej ilości energii."):
- battery.charge(-10)
- def test_battery_negative_discharge():
- battery = Battery()
- with pytest.raises(ValueError, match="Nie można zużyć ujemnej ilości energii."):
- battery.discharge(-10)
- def test_electric_car_initial_status():
- car = ElectricCar("Tesla", "Model S")
- assert car.get_battery_status() == "Poziom naładowania baterii: 100%"
- def test_electric_car_drive():
- car = ElectricCar("Tesla", "Model S")
- car.drive(20)
- assert car.get_battery_status() == "Poziom naładowania baterii: 80%"
- with pytest.raises(ValueError, match="Nie można przejechać ujemnej odległości."):
- car.drive(-10)
- def test_electric_car_charge_battery():
- car = ElectricCar("Tesla", "Model S")
- car.drive(50)
- car.charge_battery(30)
- assert car.get_battery_status() == "Poziom naładowania baterii: 80%"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement