From 84927c3abb769b5cfd69d40fea9a92ac503cbb80 Mon Sep 17 00:00:00 2001 From: Benedikt Hock <benedikt.hock@stud.tu-darmstadt.de> Date: Fri, 24 Feb 2023 21:14:57 +0100 Subject: [PATCH] minimal example for a car --- test-legoclasses.py | 51 +++++++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/test-legoclasses.py b/test-legoclasses.py index 69d88cf..54f2900 100644 --- a/test-legoclasses.py +++ b/test-legoclasses.py @@ -1,27 +1,42 @@ # import functions.lego_classes as lego_classes -from functions.lego_classes import LegoItem -from functions.lego_classes import LegoComponent - +from functions.lego_classes import * +import json +import pprint # Test manually creating some item and components -item1 = LegoItem(1,0.10,10) -item2 = LegoItem(3,0.30,30) -item3 = LegoItem(2, 0.2,20) +battery = LegoComponent("nice battery", ComponentCategory.BATTERY, "bat42", 1, 2, 3) +motor = LegoComponent("motor goes brrr", ComponentCategory.MOTOR, "motor", 1, 2, 3) +wheel = LegoComponent("much round wheel", ComponentCategory.WHEEL, "round", 1, 2, 3) + +car = LegoAssembly("Car", AggregationLayer.SYSTEM) + +chassis = LegoAssembly("Chassis", AggregationLayer.ASSEMBLY) +door1 = LegoAssembly("Door 1", AggregationLayer.SUBASSEMBLY) +door2 = LegoAssembly("Door 2", AggregationLayer.SUBASSEMBLY) +chassis.add_assembly(door1) +chassis.add_assembly(door2) + +engine = LegoAssembly("Engine", AggregationLayer.ASSEMBLY) +engine.add_component(motor.clone()) + +fuel_tank = LegoAssembly("Fuel Tank", AggregationLayer.ASSEMBLY) +fuel_tank.add_component(battery.clone()) +wheels = LegoAssembly("Wheels", AggregationLayer.ASSEMBLY) +for _ in range(4): + wheels.add_component(wheel.clone()) +car.add_assembly(chassis) +car.add_assembly(engine) +car.add_assembly(fuel_tank) +car.add_assembly(wheels) -component1 = LegoComponent() -# component1.add_item(item1) -component2 = LegoComponent(item2) +print_assembly_tree(car) -componentall = LegoComponent([item1,item2],[]) # Some combinations might result in errors -# component3 = LegoComponent(item3,component1) -# component3.add(item2) # Can't really use an item twice -# component3.add(component2) -print(componentall.items) -x = componentall.children() -print(x) +# Dump to json file +with open("car.json", "w") as fp: + json.dump(car.to_dict(), fp, cls=KPIEncoder) -print(type(x)) -alist = ["abc","def"] +pprint.pprint(car.to_dict()) +pass -- GitLab