Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
from typing import ClassVar class Vehicle: DEFAULT_FUEL_CONSUMPTION: ClassVar[float] = 1.25 fuel_consumption: float fuel: float capacity: float horse_power: float def __init__(self, fuel: float, horse_power: float): self.fuel = fuel self.capacity = self.fuel self.horse_power = horse_power self.fuel_consumption = self.DEFAULT_FUEL_CONSUMPTION def drive(self, kilometers): fuel_needed = self.fuel_consumption * kilometers if self.fuel < fuel_needed: raise Exception("Not enough fuel") self.fuel -= fuel_needed def refuel(self, fuel): if self.fuel + fuel > self.capacity: raise Exception("Too much fuel") self.fuel += fuel def __str__(self): return f"The vehicle has {self.horse_power} " \ f"horse power with {self.fuel} fuel left and {self.fuel_consumption} fuel consumption" import unittest class TestVehicle(unittest.TestCase): DEFAULT_FUEL_CONSUMPTION = 1.25 def setUp(self): self.vehicle = Vehicle(100, 150) def test_initialization_is_correct(self): self.assertEqual(100, self.vehicle.fuel) self.assertEqual(100, self.vehicle.capacity) self.assertEqual(150, self.vehicle.horse_power) self.assertEqual(1.25, self.vehicle.fuel_consumption) def test_raise_exception_if_not_enough_fuel(self): with self.assertRaises(Exception): self.vehicle.drive(100) self.assertEqual(100, self.vehicle.fuel) def test_drive_reduces_fuel_when_distance_is_reachable(self): distance = 50 fuel_needed = self.DEFAULT_FUEL_CONSUMPTION * distance # необходимото гориво за да се изминат 50 км self.vehicle.drive(distance) # извикваме метода drive и подаваме километрите expected_result = 100 - fuel_needed # горивото, което сме имали в началото - нужното гориво за изминаване на 50 км self.assertEqual(expected_result, self.vehicle.fuel) # прави test и ако е равно на нула def test_if_fuel_is_over_capacity_raise_exeption(self): with self.assertRaises(Exception): self.vehicle.refuel(10) def test_added_fuel_is_less_capacity(self): self.vehicle.fuel -= 20 self.vehicle.refuel(20) self.assertEqual(100, self.vehicle.fuel) def test_vehicle_str_returns_proper_sting_message(self): actual_result = str(self.vehicle) expected = f"The vehicle has 150 " \ f"horse power with 100 fuel left and 1.25 fuel consumption" if __name__ == '__main__': unittest.main()
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)