30 lines
1.6 KiB
Swift
30 lines
1.6 KiB
Swift
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("A1,B2; C3\nD4") == ["A1", "B2", "C3", "D4"])
|
||
print("Template column/address bounds, duplicate targets and row validation passed")
|
||
}
|
||
}
|