Skip to content

Commit

Permalink
feat(Parser): allow equals (=) sign for label-value separator
Browse files Browse the repository at this point in the history
Closes #22
  • Loading branch information
leon0399 committed Feb 27, 2024
1 parent cab9299 commit aff3e74
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 38 deletions.
81 changes: 43 additions & 38 deletions src/msgAggregatorWorker.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,44 +81,49 @@ describe("Parsing data", () => {
);
});

test("labeled", () => {
const messages = [
`0${trailingFieldDelimiter}${recordDelimiter}`,
`label_1:1${fieldDelimiter}label_2:2${trailingFieldDelimiter}${recordDelimiter}`,
`label_1:3${fieldDelimiter}label_2:4${trailingFieldDelimiter}${recordDelimiter}`,
];

const assertion = {
datasetNames: ["label_1", "label_2"],
parsedLines: [
{ label_1: 1, label_2: 2 },
{ label_1: 3, label_2: 4 },
],
};

expect(messageAggregator.parseSerialMessages(messages)).toEqual(
assertion
);
});

test("labeled padded", () => {
const messages = [
`0${trailingFieldDelimiter}${recordDelimiter}`,
`label_1: 1${fieldDelimiter}label_2: 20${trailingFieldDelimiter}${recordDelimiter}`,
`label_1: 300${fieldDelimiter}label_2:4000${trailingFieldDelimiter}${recordDelimiter}`,
];

const assertion = {
datasetNames: ["label_1", "label_2"],
parsedLines: [
{ label_1: 1, label_2: 20 },
{ label_1: 300, label_2: 4000 },
],
};

expect(messageAggregator.parseSerialMessages(messages)).toEqual(
assertion
);
describe.each([
["colon", ":"],
["equals", "="],
])("%s label delimiter", (_, labelDelimiter) => {
test("labeled", () => {
const messages = [
`0${trailingFieldDelimiter}${recordDelimiter}`,
`label_1${labelDelimiter}1${fieldDelimiter}label_2${labelDelimiter}2${trailingFieldDelimiter}${recordDelimiter}`,
`label_1${labelDelimiter}3${fieldDelimiter}label_2${labelDelimiter}4${trailingFieldDelimiter}${recordDelimiter}`,
];

const assertion = {
datasetNames: ["label_1", "label_2"],
parsedLines: [
{ label_1: 1, label_2: 2 },
{ label_1: 3, label_2: 4 },
],
};

expect(messageAggregator.parseSerialMessages(messages)).toEqual(
assertion
);
});

test("labeled padded", () => {
const messages = [
`0${trailingFieldDelimiter}${recordDelimiter}`,
`label_1${labelDelimiter} 1${fieldDelimiter}label_2${labelDelimiter} 20${trailingFieldDelimiter}${recordDelimiter}`,
`label_1${labelDelimiter} 300${fieldDelimiter}label_2${labelDelimiter}4000${trailingFieldDelimiter}${recordDelimiter}`,
];

const assertion = {
datasetNames: ["label_1", "label_2"],
parsedLines: [
{ label_1: 1, label_2: 20 },
{ label_1: 300, label_2: 4000 },
],
};

expect(messageAggregator.parseSerialMessages(messages)).toEqual(
assertion
);
});
});

test("buffering", () => {
Expand Down
2 changes: 2 additions & 0 deletions src/msgAggregatorWorker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ export const parseSerialMessages = (
message = message.replace(delimiterRegex, " ");
// replace multiple spaces with a single space
message = message.replace(/\s+/g, " ");
// replace all equal signs with a colon
message = message.replace(/=/g, ":");

const parsedLine: { [key: string]: number } = {};

Expand Down

0 comments on commit aff3e74

Please sign in to comment.