From 29e61ba97541739dbdd3c700963a8d7c683b999a Mon Sep 17 00:00:00 2001 From: Kirill Shumilov Date: Thu, 29 Nov 2018 19:02:18 +0300 Subject: [PATCH] refactor(xod-tabtest): get rid of special handing of "__time(ms)" column in `TabData` module --- packages/xod-tabtest/src/SpecialColumns.re | 2 -- packages/xod-tabtest/src/TabData.re | 14 +------------- packages/xod-tabtest/src/TabData.rei | 1 - packages/xod-tabtest/src/Tabtest.re | 4 +++- packages/xod-tabtest/test/TabData_jest.re | 19 ------------------- 5 files changed, 4 insertions(+), 36 deletions(-) diff --git a/packages/xod-tabtest/src/SpecialColumns.re b/packages/xod-tabtest/src/SpecialColumns.re index 73dee244..aa4bed8b 100644 --- a/packages/xod-tabtest/src/SpecialColumns.re +++ b/packages/xod-tabtest/src/SpecialColumns.re @@ -1,3 +1 @@ let time = "__time(ms)"; - -let list = [time]; diff --git a/packages/xod-tabtest/src/TabData.re b/packages/xod-tabtest/src/TabData.re index ffbfa490..8bae9c37 100644 --- a/packages/xod-tabtest/src/TabData.re +++ b/packages/xod-tabtest/src/TabData.re @@ -12,9 +12,7 @@ module Value = { | String(string) | Byte(int) | Pulse(bool) - | Millis(int) | Invalid(string); - let uintRegex = [%re {|/^\d+$/|}]; let numberRegex = [%re {|/^[+-]?(?=.)*\d*(?:\.\d+)?$/|}]; let approxNumberRegex = [%re {|/^[+-]?(?=.)*\d*(?:\.\d+)?~$/|}]; let stringRegex = [%re {|/^".*"$/|}]; @@ -64,12 +62,6 @@ module Value = { byteStringToInt(byteString) | x => Invalid(x) }; - let parseTime = str => - switch (str) { - | timeString when Re.test(timeString, uintRegex) => - Millis(int_of_string(timeString)) - | x => Invalid(x) - }; }; module Record = { @@ -120,13 +112,9 @@ let parse = (tsvSource: string) : t => | None => [] | Some(firstLine) => let header = tabSplit(firstLine); - let timeColumnIndex = - header |. List.toArray |> Js.Array.indexOf("__time(ms)"); let lineToRecord = (line: string) : Record.t => tabSplit(line) - |. List.mapWithIndex((i, el) => - i === timeColumnIndex ? Value.parseTime(el) : Value.parse(el) - ) + |. List.map(Value.parse) |. List.zip(header, _) |. Record.fromPairs; List.tailExn(lines) diff --git a/packages/xod-tabtest/src/TabData.rei b/packages/xod-tabtest/src/TabData.rei index c5303ac5..d3a8d452 100644 --- a/packages/xod-tabtest/src/TabData.rei +++ b/packages/xod-tabtest/src/TabData.rei @@ -19,7 +19,6 @@ module Value: { | String(string) | Byte(int) | Pulse(bool) - | Millis(int) | Invalid(string); }; diff --git a/packages/xod-tabtest/src/Tabtest.re b/packages/xod-tabtest/src/Tabtest.re index e03cd371..2433a616 100644 --- a/packages/xod-tabtest/src/Tabtest.re +++ b/packages/xod-tabtest/src/Tabtest.re @@ -211,7 +211,9 @@ module TestCase = { }); let setTimeStatement = switch (record |. TabData.Record.get(SpecialColumns.time)) { - | Some(Millis(t)) => {j|mockTime($t);|j} + | Some(Number(t)) => + let time = int_of_float(t); + {j|mockTime($time);|j}; | Some(_) | None => "mockTime(millis() + 1);" }; diff --git a/packages/xod-tabtest/test/TabData_jest.re b/packages/xod-tabtest/test/TabData_jest.re index 990c7f08..ff4fbb71 100644 --- a/packages/xod-tabtest/test/TabData_jest.re +++ b/packages/xod-tabtest/test/TabData_jest.re @@ -125,23 +125,4 @@ describe("TSV parser", () => { ]; expect(TabData.parse(tsv)) |> toEqual(expected); }); - test("recognizes time column", () => { - let tsv = - "__time(ms)\tNumber\n" ++ "0\t0\n" ++ "500\t0.5\n" ++ "1200\t1.2"; - let expected: TabData.t = [ - Map.String.fromArray([| - ("__time(ms)", Millis(0)), - ("Number", Number(0.0)), - |]), - Map.String.fromArray([| - ("__time(ms)", Millis(500)), - ("Number", Number(0.5)), - |]), - Map.String.fromArray([| - ("__time(ms)", Millis(1200)), - ("Number", Number(1.2)), - |]), - ]; - expect(TabData.parse(tsv)) |> toEqual(expected); - }); });