Automated parts sorting

This commit is contained in:
2026-05-17 14:21:05 +02:00
parent d7704c5f68
commit 574349b929
7 changed files with 414 additions and 8 deletions
+22 -2
View File
@@ -2246,6 +2246,20 @@ func TestBuildHAKsGeneratesParts2DAAssetsFromLocalModels(t *testing.T) {
"derive": {
"kind": "trailing_numeric_suffix",
"group_from": "first_path_segment"
},
"parts_rows": {
"row_defaults": {"COSTMODIFIER": "0"},
"acbonus": {
"default": {
"strategy": "descending_row_id_sort_key",
"max_row_id": 999,
"divisor": 100,
"format": "%.2f"
},
"datasets": {
"chest": {"strategy": "fixed", "value": "0.00"}
}
}
}
}
}
@@ -2267,7 +2281,8 @@ func TestBuildHAKsGeneratesParts2DAAssetsFromLocalModels(t *testing.T) {
"output": "parts_belt.2da",
"columns": ["COSTMODIFIER", "ACBONUS"],
"rows": [
{"id": 0, "COSTMODIFIER": 1, "ACBONUS": "0.25"}
{"id": 0, "COSTMODIFIER": 1, "ACBONUS": "0.25"},
{"id": 17, "COSTMODIFIER": 0, "ACBONUS": "0.90"}
]
}
`)
@@ -2309,7 +2324,12 @@ func TestBuildHAKsGeneratesParts2DAAssetsFromLocalModels(t *testing.T) {
t.Fatalf("read generated parts 2da: %v", err)
}
partsText := string(partsRaw)
if !strings.Contains(partsText, "0\t1\t0.25") || !strings.Contains(partsText, "18\t0\t0.75") {
for _, want := range []string{"0\t1\t9.99", "17\t0\t9.82", "18\t0\t0.75"} {
if !strings.Contains(partsText, want) {
t.Fatalf("expected generated parts 2da to contain %q after normalization and overrides, got:\n%s", want, partsText)
}
}
if strings.Contains(partsText, "17\t0\t0.90") {
t.Fatalf("expected authored and generated rows in parts 2da, got:\n%s", partsText)
}
}