Posted: February 27th, 2023

PYTHON

 Implement the following class diagrams and write a main class to test all these classes.

 ● Each class implements the display method of the Displayable abstract class and the method should display all the current object’s and its superclass object’s information. Keep in mind, you should avoid code redundancy.

 ● Define appropriate __init__ method so that all the objects can be created properly.

 ● Define appropriate getters and setters using @property if needed for other classes’ methods. However, do not add any public or protected property or public get method for the private attribute ‘parts’ in the Machine class. 

Question Implement the following class diagrams and write a main class to test all these classes.

● Each class implements the display method of the Displayable abstract class and the method should display all the current object’s and its superclass object’s information. Keep in mind, you should avoid code redundancy.

● Define appropriate __init__ method so that all the objects can be created properly. ● Define appropriate getters and setters using @property if needed for other classes’ methods. However,

do not add any public or protected property or public get method for the private attribute ‘parts’ in the Machine class.

The main method for unit testing. def main():

robo = Robot('MTX', 'M1X', 'F-16', 10000) robo.add_part(Part(111, 100)) robo.add_part(Part(222, 200)) robo.add_part(Part(333, 300)) robo.add_part(Part(222, 300)) robo.add_part(MovablePart(555, 300, "TypeA")) robo.add_part(Part(111, 100)) robo.add_part(Part(111, 100)) robo.add_part(MovablePart(777, 300, "TypeB")) robo.add_part(MovablePart(655, 300, "TypeA")) robo.add_part(MovablePart(755, 300, "TypeA")) robo.add_part(MovablePart(977, 300, "TypeB"))

robo.display() print()

print("\nRobot test flight----") robo.fly()

print("\nRobot dowork() test ----") robo.dowork()

print("\nDuplicated part list----") partfreq = robo.find_duplicated_parts() for partno in partfreq.keys():

print(partno,'=>', partfreq[partno], 'times')

print("\nExpensive part list----") expensive_parts = robo.get_expensive_parts(200) for part in expensive_parts:

part.display()

print("\nMovable part list----") movable_parts = robo.get_movable_parts_bytype() for type, parts in movable_parts.items():

print("type =", type) for part in parts:

part.display() print()

print("\nAsk movable to move----") movable_parts = robo.get_movable_parts() for part in movable_parts:

part.move()

print("\n

Test remove_part() ----

") robo.remove_part(333) for part in robo:

if part.partno == 333: print('Found 333') break;

The Expected output cpu = M1X machine_name = MTX The machine has these parts:

partno = 111

price = 100

partno = 222 price = 200

partno = 333 price = 300

partno = 222 price = 300

partno = 555 price = 300 type = TypeA

partno = 111 price = 100 partno = 111 price = 100

partno = 777 price = 300 type = TypeB

partno = 655 price = 300 type = TypeA

partno = 755 price = 300 type = TypeA

partno = 977 price = 300 type = TypeB

model = F-16 speed = 10000

Robot test flight---- The JetFigher F-16 is flying in the sky! The Robot MTX is flying over the ocean!

Robot doWork() test ---- The Robot MTX is assembling a big truck.

Duplicated part list---- 111 => 3 times 222 => 2 times

Expensive part list---- partno = 222 price = 200 partno = 333 price = 300 partno = 222 price = 300 partno = 555 price = 300 type = TypeA partno = 777 price = 300 type = TypeB partno = 655 price = 300 type = TypeA partno = 755 price = 300 type = TypeA partno = 977 price = 300 type = TypeB

Movable part list---- type = TypeA partno = 555 price = 300 type = TypeA partno = 655 price = 300 type = TypeA partno = 755 price = 300 type = TypeA

type = TypeB partno = 777 price = 300 type = TypeB partno = 977 price = 300 type = TypeB

Ask movable to move---- partno: 555 is moving fast! partno: 777 is moving fast! partno: 655 is moving fast! partno: 755 is moving fast! partno: 977 is moving fast!

Test remove_part() ----

Expert paper writers are just a few clicks away

Place an order in 3 easy steps. Takes less than 5 mins.

Calculate the price of your order

You will get a personal manager and a discount.
We'll send you the first draft for approval by at
Total price:
$0.00