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