From ed2c9caddfaeaf02e993529e2e6b0da113152252 Mon Sep 17 00:00:00 2001 From: Jeff Date: Wed, 28 Feb 2024 22:37:52 -0500 Subject: [PATCH] Remove WIP Subtraction, clean up unused types --- package.json | 4 ++-- src/Addition.ts | 2 +- src/{index.ts => Digits.ts} | 6 +----- src/Max.ts | 2 +- src/Subraction.ts | 15 --------------- 5 files changed, 5 insertions(+), 24 deletions(-) rename src/{index.ts => Digits.ts} (82%) delete mode 100644 src/Subraction.ts diff --git a/package.json b/package.json index 6bc032f..f4ecd26 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,13 @@ { "name": "numeric-types", - "version": "1.0.0", + "version": "0.0.1", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Jeff Lieb", - "license": "ISC", + "license": "NON-AI ISC", "dependencies": { "typescript": "^5.3.3" } diff --git a/src/Addition.ts b/src/Addition.ts index c1fa4d5..9b6f537 100644 --- a/src/Addition.ts +++ b/src/Addition.ts @@ -1,4 +1,4 @@ -import { DigitsToNumber, SplitDigits, Digit, TupleForDigit } from "."; +import { DigitsToNumber, SplitDigits, Digit, TupleForDigit } from "./Digits"; export type Add = DigitsToNumber, SplitDigits>> & number diff --git a/src/index.ts b/src/Digits.ts similarity index 82% rename from src/index.ts rename to src/Digits.ts index 6463a81..7c2aa92 100644 --- a/src/index.ts +++ b/src/Digits.ts @@ -1,6 +1,4 @@ -type NonZeroDigit = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 -export type Digit = 0 | NonZeroDigit -type Tuple0To9 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] +export type Digit = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 export type TupleForDigit = Value extends 0 ? [] @@ -27,8 +25,6 @@ type TakeDigitFromString = ? [Head, ...TakeDigitFromString] : never -type Zeros = [] & {length: Length} extends [...infer Tuple] ? {[Property in keyof Tuple]: 0} & Array<0> & {length: Length} : never - type StringToNumber = NumericString extends `${infer Number extends number}` ? Number : never type Stringable = string | number | bigint | boolean | null | undefined diff --git a/src/Max.ts b/src/Max.ts index 21b1b9b..8f4d914 100644 --- a/src/Max.ts +++ b/src/Max.ts @@ -1,5 +1,5 @@ -import { Digit, DigitsToNumber, SplitDigits, TupleForDigit } from "." +import { Digit, DigitsToNumber, SplitDigits, TupleForDigit } from "./Digits" export type Max = DigitsToNumber, SplitDigits>> & number diff --git a/src/Subraction.ts b/src/Subraction.ts deleted file mode 100644 index 7e50931..0000000 --- a/src/Subraction.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Digit, DigitsToNumber, SplitDigits, TupleForDigit } from "."; - -export type Add = DigitsToNumber, SplitDigits>> & number - -type SubtractDigitArrays = - [A, B] extends [[...infer HeadA extends Digit[], infer TailA extends Digit], [...infer HeadB extends Digit[], infer TailB extends Digit]] ? AddTails : [A, B] extends [[...infer HeadA extends Digit[], infer TailA extends Digit], []] ? AddTails : [A, B] extends [[], [...infer HeadB extends Digit[], infer TailB extends Digit]] ? AddTails<[], 0, HeadB, TailB, Carry> : [A, B] extends [[], []] ? Carry extends true ? [1] : [] : [] - -type SubtractTails = - SplitDigits> extends [1, infer Result extends Digit] ? [...AddDigitArrays, Result] : [...AddDigitArrays, SplitDigits>[0]] - -type SubtractDigits = - - [...TupleForDigit, ...TupleForDigit, ...(Carry extends false ? [] : [0])]['length'] & number - -