9月20日

This commit is contained in:
csj
2026-09-20 16:31:24 +08:00
parent 967eaaec8a
commit 68bf79ec3f
37 changed files with 3581 additions and 1627 deletions
@@ -0,0 +1,29 @@
import Foundation
@main
struct TemplateMappingValidationTests {
static func main() {
for value in ["A", "c", "IV"] { precondition(TemplateMappingValidation.column(value)) }
for value in ["", "A1", "IW", "1", "=A"] { precondition(!TemplateMappingValidation.column(value)) }
for value in ["C23", "iv2000", "A1"] { precondition(TemplateMappingValidation.address(value)) }
for value in ["A0", "A2001", "A01", "IW1", "C", "C23:D24"] { precondition(!TemplateMappingValidation.address(value)) }
var mapping = ExpenseTemplateMapping(sheetName: "Sheet", columns: ["purpose": "C", "amount": "H"],
cells: ["recipient": "C23"], signatureCells: "A30,D30")
precondition(TemplateMappingValidation.issues(mapping).isEmpty)
mapping.cells["bankName"] = " "
precondition(TemplateMappingValidation.issues(mapping).isEmpty)
mapping.columns["amount"] = "C"
precondition(!TemplateMappingValidation.issues(mapping).isEmpty)
mapping.columns["amount"] = "H"
mapping.cells["recipient"] = "C10"
precondition(!TemplateMappingValidation.issues(mapping).isEmpty)
mapping.cells["recipient"] = "C23"
mapping.clearCells = "C23"
precondition(!TemplateMappingValidation.issues(mapping).isEmpty)
mapping.clearCells = ""
mapping.endRow = 8
precondition(!TemplateMappingValidation.issues(mapping).isEmpty)
precondition(TemplateMappingValidation.references("A1B2; C3\nD4") == ["A1", "B2", "C3", "D4"])
print("Template column/address bounds, duplicate targets and row validation passed")
}
}