From b2b5e32535aa9017178fbc0314ae1f4163dde2c5 Mon Sep 17 00:00:00 2001 From: Michael Housh Date: Thu, 5 Feb 2026 11:43:48 -0500 Subject: [PATCH] feat: Experiments with csv parsing / printing, currently implemented in RoomTests only. --- Tests/DatabaseClientTests/RoomTests.swift | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Tests/DatabaseClientTests/RoomTests.swift b/Tests/DatabaseClientTests/RoomTests.swift index 141a7e9..dada7c9 100644 --- a/Tests/DatabaseClientTests/RoomTests.swift +++ b/Tests/DatabaseClientTests/RoomTests.swift @@ -156,24 +156,34 @@ struct RoomTests { @Test func csvParsing() throws { let input = """ - Name,Heating Load,Cooling Total,Cooling Sensible, Register Count + Name,Heating Load,Cooling Total,Cooling Sensible,Register Count Bed-1,12345,12345,,2 Bed-2,1223,,1123,1 """[...].utf8 + let commaSeparator = ParsePrint { + OneOf { + ",".utf8 + ", ".utf8 + } + } + let rowParser = ParsePrint { Prefix { $0 != UInt8(ascii: ",") }.map(.string) ",".utf8 Double.parser() - ",".utf8 + Skip { commaSeparator } + // ",".utf8 Optionally { Double.parser() } - ",".utf8 + Skip { commaSeparator } + // ",".utf8 Optionally { Double.parser() } - ",".utf8 + Skip { commaSeparator } + // ",".utf8 Int.parser() } .map(.memberwise(Row.init))