diff --git a/README.md b/README.md index 92c09d0..fc17fa3 100644 --- a/README.md +++ b/README.md @@ -155,7 +155,7 @@ The SAS type (char/numeric) of the values is determined according to a set of ru * If the values are numeric, the SAS type is numeric * If the values are all string, the SAS type is character -* If the values contain a single character (a-Z + underscore) AND a numeric, then the SAS type is numeric (with special missing values). +* If the values contain a single character (a-Z + underscore + .) AND a numeric, then the SAS type is numeric (with special missing values). * `null` is set to either '.' or '' depending on the assigned or derived type per the above rules. If entire column is `null` then the type will be numeric. The following table illustrates the formats applied to columns under various scenarios: diff --git a/src/test/utils/formatDataForRequest.spec.ts b/src/test/utils/formatDataForRequest.spec.ts index eee87a4..4527de9 100644 --- a/src/test/utils/formatDataForRequest.spec.ts +++ b/src/test/utils/formatDataForRequest.spec.ts @@ -54,6 +54,17 @@ describe('formatDataForRequest', () => { expect(formatDataForRequest(data)).toEqual(expectedOutput) }) + it('should accept . as special missing value', () => { + let tableWithMissingValues = { + [testTable]: [{ var: '.' }, { var: 0 }], + [`$${testTable}`]: { formats: { var: 'best.' } } + } + + expect(() => + formatDataForRequest(tableWithMissingValues) + ).not.toThrowError() + }) + it('should throw an error if special missing values is not valid', () => { let tableWithMissingValues = { [testTable]: [{ var: 'AA' }, { var: 0 }],