feat: holographic 3D hive scene and Futtertasche (Beute L3, first cut)
- 3D dependencies (three, react-three-fiber, drei, postprocessing, motion), exact versions, supply-chain checked; scene loaded only on demand on the colony page (283 kB gzip), SVG stays as fallback - glass hologram per owner design 2026-10-16: true Liebig Zander shapes (grips, rebate, Wanderboden foot), cool blue edge glow, click any part -> it flies to the front while the rest stays as a faint ghost; focus shows content (feed levels, Bausperre, pockets); frames rise on hover and take their type look (colour + comb pattern) - full-bleed card with frosted overlays and glass buttons - Futtertasche (FRAME_FEEDER): new part kind occupying frame slots with a fill level, catalog row, validator rules in both ports, outline, sheets, follow-ups, settings Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
1 parent
c608f5d405
commit
6e13236d49
100 files changed
+9432
-209
No files matched your search
+81
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"name": "frame feeder without slot fails",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "addInsert",
|
||||
"hostId": "b1",
|
||||
"part": {
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {}
|
||||
}
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": false,
|
||||
"opIndex": 0,
|
||||
"reasonCode": "RULE_FEEDER_SLOT"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"name": "frame feeder slot 0 fails",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "addInsert",
|
||||
"hostId": "b1",
|
||||
"part": {
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": false,
|
||||
"opIndex": 0,
|
||||
"reasonCode": "RULE_FEEDER_SLOT"
|
||||
}
|
||||
}
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"name": "frame feeder with a fractional slot fails",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "addInsert",
|
||||
"hostId": "b1",
|
||||
"part": {
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1.5
|
||||
}
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": false,
|
||||
"opIndex": 0,
|
||||
"reasonCode": "RULE_FEEDER_SLOT"
|
||||
}
|
||||
}
|
||||
+126
@@ -0,0 +1,126 @@
|
||||
{
|
||||
"name": "setFrames putting a type on a covered slot fails",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
],
|
||||
"inserts": [
|
||||
{
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "setFrames",
|
||||
"boxId": "b1",
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": false,
|
||||
"opIndex": 0,
|
||||
"reasonCode": "RULE_FEEDER_SLOT"
|
||||
}
|
||||
}
|
||||
+156
@@ -0,0 +1,156 @@
|
||||
{
|
||||
"name": "setState on a frame feeder sets the level",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
],
|
||||
"inserts": [
|
||||
{
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "setState",
|
||||
"id": "p1",
|
||||
"key": "syrupLiters",
|
||||
"value": 2
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": true,
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
],
|
||||
"inserts": [
|
||||
{
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {
|
||||
"syrupLiters": 2
|
||||
},
|
||||
"slot": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
+86
@@ -0,0 +1,86 @@
|
||||
{
|
||||
"name": "setState on a frame feeder above max fails",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
],
|
||||
"inserts": [
|
||||
{
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "setState",
|
||||
"id": "p1",
|
||||
"key": "syrupLiters",
|
||||
"value": 2.25
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": false,
|
||||
"opIndex": 0,
|
||||
"reasonCode": "STATE_OUT_OF_RANGE"
|
||||
}
|
||||
}
|
||||
+162
@@ -0,0 +1,162 @@
|
||||
{
|
||||
"name": "evaporator and frame feeder share a box",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
],
|
||||
"inserts": [
|
||||
{
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "addInsert",
|
||||
"hostId": "b1",
|
||||
"part": {
|
||||
"id": "e1",
|
||||
"partTypeId": "hive-part-zl10-evaporator",
|
||||
"state": {}
|
||||
}
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": true,
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
],
|
||||
"inserts": [
|
||||
{
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
},
|
||||
{
|
||||
"id": "e1",
|
||||
"partTypeId": "hive-part-zl10-evaporator",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"name": "slot on a non-feeder insert fails",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "addInsert",
|
||||
"hostId": "b1",
|
||||
"part": {
|
||||
"id": "e1",
|
||||
"partTypeId": "hive-part-zl10-evaporator",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": false,
|
||||
"opIndex": 0,
|
||||
"reasonCode": "RULE_FEEDER_SLOT"
|
||||
}
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"name": "frame feeder in a box without slots fails",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b0",
|
||||
"partTypeId": "hive-part-zl10-box-empty",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "addInsert",
|
||||
"hostId": "b0",
|
||||
"part": {
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": false,
|
||||
"opIndex": 0,
|
||||
"reasonCode": "RULE_FEEDER_SLOT"
|
||||
}
|
||||
}
|
||||
Vendored
+94
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"name": "two evaporators still fail next to a frame feeder",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
],
|
||||
"inserts": [
|
||||
{
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
},
|
||||
{
|
||||
"id": "e1",
|
||||
"partTypeId": "hive-part-zl10-evaporator",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "addInsert",
|
||||
"hostId": "b1",
|
||||
"part": {
|
||||
"id": "e2",
|
||||
"partTypeId": "hive-part-zl10-evaporator",
|
||||
"state": {}
|
||||
}
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": false,
|
||||
"opIndex": 0,
|
||||
"reasonCode": "RULE_INSERT_LIMIT"
|
||||
}
|
||||
}
|
||||
Vendored
+150
@@ -0,0 +1,150 @@
|
||||
{
|
||||
"name": "frame feeder at slot 1 over two NONE frames is ok",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "addInsert",
|
||||
"hostId": "b1",
|
||||
"part": {
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": true,
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
],
|
||||
"inserts": [
|
||||
{
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Vendored
+200
@@ -0,0 +1,200 @@
|
||||
{
|
||||
"name": "setFrames then addInsert places a frame feeder",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "setFrames",
|
||||
"boxId": "b1",
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"op": "addInsert",
|
||||
"hostId": "b1",
|
||||
"part": {
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {
|
||||
"syrupLiters": 1.5
|
||||
},
|
||||
"slot": 4
|
||||
}
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": true,
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
],
|
||||
"inserts": [
|
||||
{
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {
|
||||
"syrupLiters": 1.5
|
||||
},
|
||||
"slot": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Vendored
+82
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"name": "frame feeder over frames that are not NONE fails",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "addInsert",
|
||||
"hostId": "b1",
|
||||
"part": {
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": false,
|
||||
"opIndex": 0,
|
||||
"reasonCode": "RULE_FEEDER_SLOT"
|
||||
}
|
||||
}
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"name": "overlapping frame feeders fail",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
],
|
||||
"inserts": [
|
||||
{
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "addInsert",
|
||||
"hostId": "b1",
|
||||
"part": {
|
||||
"id": "p2",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 2
|
||||
}
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": false,
|
||||
"opIndex": 0,
|
||||
"reasonCode": "RULE_FEEDER_SLOT"
|
||||
}
|
||||
}
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"name": "frame feeder beyond frameSlots fails",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "NONE"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "addInsert",
|
||||
"hostId": "b1",
|
||||
"part": {
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 10
|
||||
}
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": false,
|
||||
"opIndex": 0,
|
||||
"reasonCode": "RULE_FEEDER_SLOT"
|
||||
}
|
||||
}
|
||||
+86
@@ -0,0 +1,86 @@
|
||||
{
|
||||
"name": "setFrame on a covered slot fails",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
],
|
||||
"inserts": [
|
||||
{
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "setFrame",
|
||||
"boxId": "b1",
|
||||
"slot": 2,
|
||||
"type": "BROOD"
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": false,
|
||||
"opIndex": 0,
|
||||
"reasonCode": "RULE_FEEDER_SLOT"
|
||||
}
|
||||
}
|
||||
+150
@@ -0,0 +1,150 @@
|
||||
{
|
||||
"name": "removing the frame feeder frees its slots",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
],
|
||||
"inserts": [
|
||||
{
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "removePart",
|
||||
"id": "p1"
|
||||
},
|
||||
{
|
||||
"op": "setFrame",
|
||||
"boxId": "b1",
|
||||
"slot": 1,
|
||||
"type": "BROOD"
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": true,
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "BROOD"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
+164
@@ -0,0 +1,164 @@
|
||||
{
|
||||
"name": "two frame feeders without overlap are ok",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
],
|
||||
"inserts": [
|
||||
{
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "addInsert",
|
||||
"hostId": "b1",
|
||||
"part": {
|
||||
"id": "p2",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": true,
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "NONE"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
],
|
||||
"inserts": [
|
||||
{
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
},
|
||||
{
|
||||
"id": "p2",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"name": "frame feeder cannot sit in the stack",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "addPart",
|
||||
"at": 2,
|
||||
"part": {
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": false,
|
||||
"opIndex": 0,
|
||||
"reasonCode": "RULE_INSERT_HOST"
|
||||
}
|
||||
}
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"name": "frame feeder cannot go into a floor",
|
||||
"state": {
|
||||
"schemaVersion": 1,
|
||||
"stack": [
|
||||
{
|
||||
"id": "f1",
|
||||
"partTypeId": "hive-part-zl10-floor",
|
||||
"state": {}
|
||||
},
|
||||
{
|
||||
"id": "b1",
|
||||
"partTypeId": "hive-part-zl10-box-10",
|
||||
"state": {},
|
||||
"frames": [
|
||||
{
|
||||
"slot": 1,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"type": "FOUNDATION"
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"type": "FOUNDATION"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "r1",
|
||||
"partTypeId": "hive-part-zl10-roof",
|
||||
"state": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"op": "addInsert",
|
||||
"hostId": "f1",
|
||||
"part": {
|
||||
"id": "p1",
|
||||
"partTypeId": "hive-part-zl10-frame-feeder",
|
||||
"state": {},
|
||||
"slot": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expect": {
|
||||
"ok": false,
|
||||
"opIndex": 0,
|
||||
"reasonCode": "RULE_INSERT_HOST"
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,7 @@
|
||||
"widthMm": 430,
|
||||
"heightMm": 120,
|
||||
"frameSlots": null,
|
||||
"slotWidth": null,
|
||||
"stateSchema": [
|
||||
{
|
||||
"key": "entrance",
|
||||
@@ -49,6 +50,7 @@
|
||||
"widthMm": 375,
|
||||
"heightMm": 5,
|
||||
"frameSlots": null,
|
||||
"slotWidth": null,
|
||||
"stateSchema": [],
|
||||
"active": true
|
||||
},
|
||||
@@ -60,6 +62,7 @@
|
||||
"widthMm": 430,
|
||||
"heightMm": 230,
|
||||
"frameSlots": 10,
|
||||
"slotWidth": null,
|
||||
"stateSchema": [],
|
||||
"active": true
|
||||
},
|
||||
@@ -71,6 +74,7 @@
|
||||
"widthMm": 430,
|
||||
"heightMm": 230,
|
||||
"frameSlots": 0,
|
||||
"slotWidth": null,
|
||||
"stateSchema": [],
|
||||
"active": true
|
||||
},
|
||||
@@ -82,6 +86,7 @@
|
||||
"widthMm": 430,
|
||||
"heightMm": 50,
|
||||
"frameSlots": null,
|
||||
"slotWidth": null,
|
||||
"stateSchema": [
|
||||
{
|
||||
"key": "bungHoles",
|
||||
@@ -109,6 +114,7 @@
|
||||
"widthMm": 376,
|
||||
"heightMm": 2,
|
||||
"frameSlots": null,
|
||||
"slotWidth": null,
|
||||
"stateSchema": [],
|
||||
"active": true
|
||||
},
|
||||
@@ -120,6 +126,7 @@
|
||||
"widthMm": 420,
|
||||
"heightMm": 70,
|
||||
"frameSlots": null,
|
||||
"slotWidth": null,
|
||||
"stateSchema": [
|
||||
{
|
||||
"key": "syrupLiters",
|
||||
@@ -150,6 +157,7 @@
|
||||
"widthMm": 378,
|
||||
"heightMm": 1,
|
||||
"frameSlots": null,
|
||||
"slotWidth": null,
|
||||
"stateSchema": [],
|
||||
"active": true
|
||||
},
|
||||
@@ -161,6 +169,7 @@
|
||||
"widthMm": 378,
|
||||
"heightMm": 1,
|
||||
"frameSlots": null,
|
||||
"slotWidth": null,
|
||||
"stateSchema": [],
|
||||
"active": true
|
||||
},
|
||||
@@ -172,6 +181,7 @@
|
||||
"widthMm": 378,
|
||||
"heightMm": 3,
|
||||
"frameSlots": null,
|
||||
"slotWidth": null,
|
||||
"stateSchema": [],
|
||||
"active": true
|
||||
},
|
||||
@@ -183,6 +193,7 @@
|
||||
"widthMm": 430,
|
||||
"heightMm": 35,
|
||||
"frameSlots": null,
|
||||
"slotWidth": null,
|
||||
"stateSchema": [
|
||||
{
|
||||
"key": "feedHole",
|
||||
@@ -208,6 +219,7 @@
|
||||
"widthMm": 365,
|
||||
"heightMm": 20,
|
||||
"frameSlots": null,
|
||||
"slotWidth": null,
|
||||
"stateSchema": [],
|
||||
"active": true
|
||||
},
|
||||
@@ -219,6 +231,7 @@
|
||||
"widthMm": 430,
|
||||
"heightMm": 60,
|
||||
"frameSlots": null,
|
||||
"slotWidth": null,
|
||||
"stateSchema": [],
|
||||
"active": true
|
||||
},
|
||||
@@ -230,6 +243,7 @@
|
||||
"widthMm": 140,
|
||||
"heightMm": 120,
|
||||
"frameSlots": null,
|
||||
"slotWidth": null,
|
||||
"stateSchema": [
|
||||
{
|
||||
"key": "acidMl",
|
||||
@@ -241,6 +255,28 @@
|
||||
}
|
||||
],
|
||||
"active": true
|
||||
},
|
||||
{
|
||||
"id": "hive-part-zl10-frame-feeder",
|
||||
"kind": "FRAME_FEEDER",
|
||||
"name": "Holz-Futtertasche Zander, doppelte Wabenbreite",
|
||||
"lengthMm": 477,
|
||||
"widthMm": 70,
|
||||
"heightMm": 220,
|
||||
"frameSlots": null,
|
||||
"slotWidth": 2,
|
||||
"stateSchema": [
|
||||
{
|
||||
"key": "syrupLiters",
|
||||
"label": "Flüssigfutter",
|
||||
"kind": "level",
|
||||
"unit": "l",
|
||||
"max": 2,
|
||||
"step": 0.25,
|
||||
"feedType": "SUGAR_WATER"
|
||||
}
|
||||
],
|
||||
"active": true
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user