| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 | 
							- import {
 
-   Spreadsheet,
 
-   tryParseCells,
 
-   tryParseNumber,
 
-   VALID_SPREADSHEET,
 
- } from "./charts";
 
- describe("charts", () => {
 
-   describe("tryParseNumber", () => {
 
-     it.each<[string, number]>([
 
-       ["1", 1],
 
-       ["0", 0],
 
-       ["-1", -1],
 
-       ["0.1", 0.1],
 
-       [".1", 0.1],
 
-       ["1.", 1],
 
-       ["424.", 424],
 
-       ["$1", 1],
 
-       ["-.1", -0.1],
 
-       ["-$1", -1],
 
-       ["$-1", -1],
 
-     ])("should correctly identify %s as numbers", (given, expected) => {
 
-       expect(tryParseNumber(given)).toEqual(expected);
 
-     });
 
-     it.each<[string]>([["a"], ["$"], ["$a"], ["-$a"]])(
 
-       "should correctly identify %s as not a number",
 
-       (given) => {
 
-         expect(tryParseNumber(given)).toBeNull();
 
-       },
 
-     );
 
-   });
 
-   describe("tryParseCells", () => {
 
-     it("Successfully parses a spreadsheet", () => {
 
-       const spreadsheet = [
 
-         ["time", "value"],
 
-         ["01:00", "61"],
 
-         ["02:00", "-60"],
 
-         ["03:00", "85"],
 
-         ["04:00", "-67"],
 
-         ["05:00", "54"],
 
-         ["06:00", "95"],
 
-       ];
 
-       const result = tryParseCells(spreadsheet);
 
-       expect(result.type).toBe(VALID_SPREADSHEET);
 
-       const { title, labels, values } = (
 
-         result as { type: typeof VALID_SPREADSHEET; spreadsheet: Spreadsheet }
 
-       ).spreadsheet;
 
-       expect(title).toEqual("value");
 
-       expect(labels).toEqual([
 
-         "01:00",
 
-         "02:00",
 
-         "03:00",
 
-         "04:00",
 
-         "05:00",
 
-         "06:00",
 
-       ]);
 
-       expect(values).toEqual([61, -60, 85, -67, 54, 95]);
 
-     });
 
-     it("Uses the second column as the label if it is not a number", () => {
 
-       const spreadsheet = [
 
-         ["time", "value"],
 
-         ["01:00", "61"],
 
-         ["02:00", "-60"],
 
-         ["03:00", "85"],
 
-         ["04:00", "-67"],
 
-         ["05:00", "54"],
 
-         ["06:00", "95"],
 
-       ];
 
-       const result = tryParseCells(spreadsheet);
 
-       expect(result.type).toBe(VALID_SPREADSHEET);
 
-       const { title, labels, values } = (
 
-         result as { type: typeof VALID_SPREADSHEET; spreadsheet: Spreadsheet }
 
-       ).spreadsheet;
 
-       expect(title).toEqual("value");
 
-       expect(labels).toEqual([
 
-         "01:00",
 
-         "02:00",
 
-         "03:00",
 
-         "04:00",
 
-         "05:00",
 
-         "06:00",
 
-       ]);
 
-       expect(values).toEqual([61, -60, 85, -67, 54, 95]);
 
-     });
 
-     it("treats the first column as labels if both columns are numbers", () => {
 
-       const spreadsheet = [
 
-         ["time", "value"],
 
-         ["01", "61"],
 
-         ["02", "-60"],
 
-         ["03", "85"],
 
-         ["04", "-67"],
 
-         ["05", "54"],
 
-         ["06", "95"],
 
-       ];
 
-       const result = tryParseCells(spreadsheet);
 
-       expect(result.type).toBe(VALID_SPREADSHEET);
 
-       const { title, labels, values } = (
 
-         result as { type: typeof VALID_SPREADSHEET; spreadsheet: Spreadsheet }
 
-       ).spreadsheet;
 
-       expect(title).toEqual("value");
 
-       expect(labels).toEqual(["01", "02", "03", "04", "05", "06"]);
 
-       expect(values).toEqual([61, -60, 85, -67, 54, 95]);
 
-     });
 
-   });
 
- });
 
 
  |