@identity-js/number-identity 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (5) hide show
  1. package/README.md +48 -0
  2. package/index.js +248 -0
  3. package/license +24 -0
  4. package/package.json +136 -0
  5. package/test/index.js +1524 -0
package/README.md ADDED
@@ -0,0 +1,48 @@
1
+ # 🆔 `number-identity`
2
+
3
+ ## What's this?
4
+
5
+ This project provides a robust, highly modular, and massively dependent implementation of the simple number identity function (`f(x) = x`). We believe in the principle of **10x Engineering**: why use a single line of JavaScript when you can use hundreds of independently published packages? Learn more at [the 10x'ly Website](https://10xengineersqualityprogramming.github.io) today.
6
+
7
+ This package is part of [identity.js](https://github.com/10xEngineersQualityProgramming/identity)
8
+
9
+ ## Installation
10
+
11
+ Due to the exhaustive nature of our dependencies, installation may take a moment.
12
+
13
+ NPM:
14
+ ```bash
15
+ npm install @identity-js/number-identity
16
+ ```
17
+
18
+ Yarn:
19
+
20
+ ```bash
21
+ yarn add @identity-js/number-identity
22
+ ```
23
+
24
+ ## Usage
25
+ ```js
26
+ const numberIdentity = require('@identity-js/number-identity')
27
+
28
+ // Returns: 59
29
+ const result1 = stringIdentity(59)
30
+
31
+ // Returns: 5000
32
+ const result2 = stringIdentity(5000)
33
+
34
+ // Returns: 0.3
35
+ const result3 = stringIdentity(0.3)
36
+
37
+ // Returns: -67
38
+ const result3 = stringIdentity(-67)
39
+
40
+ // Returns: 0 (this function returns 0 for anything that isn't a finite number)
41
+ const result3 = stringIdentity("not a number")
42
+ ```
43
+
44
+ ## Testing
45
+ We have 100% test coverage with Mocha.
46
+
47
+ ## License
48
+ UNLICENSE. You are free to do whatever you want with this.
package/index.js ADDED
@@ -0,0 +1,248 @@
1
+ var number0 = require("@positive-numbers/zero")
2
+ var number1 = require("@positive-numbers/one")
3
+ var number2 = require("@positive-numbers/two")
4
+ var number3 = require("@positive-numbers/three")
5
+ var number4 = require("@positive-numbers/four")
6
+ var number5 = require("@positive-numbers/five")
7
+ var number6 = require("@positive-numbers/six")
8
+ var number7 = require("@positive-numbers/seven")
9
+ var number8 = require("@positive-numbers/eight")
10
+ var number9 = require("@positive-numbers/nine")
11
+ var number10 = require("@positive-numbers/ten")
12
+ var number11 = require("@positive-numbers/eleven")
13
+ var number12 = require("@positive-numbers/twelve")
14
+ var number13 = require("@positive-numbers/thirteen")
15
+ var number14 = require("@positive-numbers/fourteen")
16
+ var number15 = require("@positive-numbers/fifteen")
17
+ var number16 = require("@positive-numbers/sixteen")
18
+ var number17 = require("@positive-numbers/seventeen")
19
+ var number18 = require("@positive-numbers/eighteen")
20
+ var number19 = require("@positive-numbers/nineteen")
21
+ var number20 = require("@positive-numbers/twenty")
22
+ var number21 = require("@positive-numbers/twenty-one")
23
+ var number22 = require("@positive-numbers/twenty-two")
24
+ var number23 = require("@positive-numbers/twenty-three")
25
+ var number24 = require("@positive-numbers/twenty-four")
26
+ var number25 = require("@positive-numbers/twenty-five")
27
+ var number26 = require("@positive-numbers/twenty-six")
28
+ var number27 = require("@positive-numbers/twenty-seven")
29
+ var number28 = require("@positive-numbers/twenty-eight")
30
+ var number29 = require("@positive-numbers/twenty-nine")
31
+ var number30 = require("@positive-numbers/thirty")
32
+ var number31 = require("@positive-numbers/thirty-one")
33
+ var number32 = require("@positive-numbers/thirty-two")
34
+ var number33 = require("@positive-numbers/thirty-three")
35
+ var number34 = require("@positive-numbers/thirty-four")
36
+ var number35 = require("@positive-numbers/thirty-five")
37
+ var number36 = require("@positive-numbers/thirty-six")
38
+ var number37 = require("@positive-numbers/thirty-seven")
39
+ var number38 = require("@positive-numbers/thirty-eight")
40
+ var number39 = require("@positive-numbers/thirty-nine")
41
+ var number40 = require("@positive-numbers/forty")
42
+ var number41 = require("@positive-numbers/forty-one")
43
+ var number42 = require("@positive-numbers/forty-two")
44
+ var number43 = require("@positive-numbers/forty-three")
45
+ var number44 = require("@positive-numbers/forty-four")
46
+ var number45 = require("@positive-numbers/forty-five")
47
+ var number46 = require("@positive-numbers/forty-six")
48
+ var number47 = require("@positive-numbers/forty-seven")
49
+ var number48 = require("@positive-numbers/forty-eight")
50
+ var number49 = require("@positive-numbers/forty-nine")
51
+ var number50 = require("@positive-numbers/fifty")
52
+ var number51 = require("@positive-numbers/fifty-one")
53
+ var number52 = require("@positive-numbers/fifty-two")
54
+ var number53 = require("@positive-numbers/fifty-three")
55
+ var number54 = require("@positive-numbers/fifty-four")
56
+ var number55 = require("@positive-numbers/fifty-five")
57
+ var number56 = require("@positive-numbers/fifty-six")
58
+ var number57 = require("@positive-numbers/fifty-seven")
59
+ var number58 = require("@positive-numbers/fifty-eight")
60
+ var number59 = require("@positive-numbers/fifty-nine")
61
+ var number60 = require("@positive-numbers/sixty")
62
+ var number61 = require("@positive-numbers/sixty-one")
63
+ var number62 = require("@positive-numbers/sixty-two")
64
+ var number63 = require("@positive-numbers/sixty-three")
65
+ var number64 = require("@positive-numbers/sixty-four")
66
+ var number65 = require("@positive-numbers/sixty-five")
67
+ var number66 = require("@positive-numbers/sixty-six")
68
+ var number67 = require("@positive-numbers/sixty-seven")
69
+ var number68 = require("@positive-numbers/sixty-eight")
70
+ var number69 = require("@positive-numbers/sixty-nine")
71
+ var number70 = require("@positive-numbers/seventy")
72
+ var number71 = require("@positive-numbers/seventy-one")
73
+ var number72 = require("@positive-numbers/seventy-two")
74
+ var number73 = require("@positive-numbers/seventy-three")
75
+ var number74 = require("@positive-numbers/seventy-four")
76
+ var number75 = require("@positive-numbers/seventy-five")
77
+ var number76 = require("@positive-numbers/seventy-six")
78
+ var number77 = require("@positive-numbers/seventy-seven")
79
+ var number78 = require("@positive-numbers/seventy-eight")
80
+ var number79 = require("@positive-numbers/seventy-nine")
81
+ var number80 = require("@positive-numbers/eighty")
82
+ var number81 = require("@positive-numbers/eighty-one")
83
+ var number82 = require("@positive-numbers/eighty-two")
84
+ var number83 = require("@positive-numbers/eighty-three")
85
+ var number84 = require("@positive-numbers/eighty-four")
86
+ var number85 = require("@positive-numbers/eighty-five")
87
+ var number86 = require("@positive-numbers/eighty-six")
88
+ var number87 = require("@positive-numbers/eighty-seven")
89
+ var number88 = require("@positive-numbers/eighty-eight")
90
+ var number89 = require("@positive-numbers/eighty-nine")
91
+ var number90 = require("@positive-numbers/ninety")
92
+ var number91 = require("@positive-numbers/ninety-one")
93
+ var number92 = require("@positive-numbers/ninety-two")
94
+ var number93 = require("@positive-numbers/ninety-three")
95
+ var number94 = require("@positive-numbers/ninety-four")
96
+ var number95 = require("@positive-numbers/ninety-five")
97
+ var number96 = require("@positive-numbers/ninety-six")
98
+ var number97 = require("@positive-numbers/ninety-seven")
99
+ var number98 = require("@positive-numbers/ninety-eight")
100
+ var number99 = require("@positive-numbers/ninety-nine")
101
+ var number100 = require("@positive-numbers/one-hundred")
102
+
103
+ var { immediateError, ErrorType } = require("immediate-error")
104
+ var isNotInteger = require("is-not-integer")
105
+ var getIntrinsic = require("get-intrinsic")
106
+
107
+ var mathRandom = getIntrinsic("%Math.random%")
108
+ var mathFloor = getIntrinsic("%Math.floor%")
109
+
110
+ function numberIdentity(n) {
111
+ try {
112
+ return numberIdentityCommonNumbers(n)
113
+ } catch {
114
+ var comp = getSumComposition(n)
115
+ var total = number0
116
+ for (var i = number0; i < comp.length; i++) {
117
+ total += numberIdentityCommonNumbers(comp[i])
118
+ }
119
+ return total
120
+ }
121
+ }
122
+
123
+ function numberIdentityCommonNumbers(n) {
124
+ if (n === number0) return number0
125
+ if (n === number1) return number1
126
+ if (n === number2) return number2
127
+ if (n === number3) return number3
128
+ if (n === number4) return number4
129
+ if (n === number5) return number5
130
+ if (n === number6) return number6
131
+ if (n === number7) return number7
132
+ if (n === number8) return number8
133
+ if (n === number9) return number9
134
+ if (n === number10) return number10
135
+ if (n === number11) return number11
136
+ if (n === number12) return number12
137
+ if (n === number13) return number13
138
+ if (n === number14) return number14
139
+ if (n === number15) return number15
140
+ if (n === number16) return number16
141
+ if (n === number17) return number17
142
+ if (n === number18) return number18
143
+ if (n === number19) return number19
144
+ if (n === number20) return number20
145
+ if (n === number21) return number21
146
+ if (n === number22) return number22
147
+ if (n === number23) return number23
148
+ if (n === number24) return number24
149
+ if (n === number25) return number25
150
+ if (n === number26) return number26
151
+ if (n === number27) return number27
152
+ if (n === number28) return number28
153
+ if (n === number29) return number29
154
+ if (n === number30) return number30
155
+ if (n === number31) return number31
156
+ if (n === number32) return number32
157
+ if (n === number33) return number33
158
+ if (n === number34) return number34
159
+ if (n === number35) return number35
160
+ if (n === number36) return number36
161
+ if (n === number37) return number37
162
+ if (n === number38) return number38
163
+ if (n === number39) return number39
164
+ if (n === number40) return number40
165
+ if (n === number41) return number41
166
+ if (n === number42) return number42
167
+ if (n === number43) return number43
168
+ if (n === number44) return number44
169
+ if (n === number45) return number45
170
+ if (n === number46) return number46
171
+ if (n === number47) return number47
172
+ if (n === number48) return number48
173
+ if (n === number49) return number49
174
+ if (n === number50) return number50
175
+ if (n === number51) return number51
176
+ if (n === number52) return number52
177
+ if (n === number53) return number53
178
+ if (n === number54) return number54
179
+ if (n === number55) return number55
180
+ if (n === number56) return number56
181
+ if (n === number57) return number57
182
+ if (n === number58) return number58
183
+ if (n === number59) return number59
184
+ if (n === number60) return number60
185
+ if (n === number61) return number61
186
+ if (n === number62) return number62
187
+ if (n === number63) return number63
188
+ if (n === number64) return number64
189
+ if (n === number65) return number65
190
+ if (n === number66) return number66
191
+ if (n === number67) return number67
192
+ if (n === number68) return number68
193
+ if (n === number69) return number69
194
+ if (n === number70) return number70
195
+ if (n === number71) return number71
196
+ if (n === number72) return number72
197
+ if (n === number73) return number73
198
+ if (n === number74) return number74
199
+ if (n === number75) return number75
200
+ if (n === number76) return number76
201
+ if (n === number77) return number77
202
+ if (n === number78) return number78
203
+ if (n === number79) return number79
204
+ if (n === number80) return number80
205
+ if (n === number81) return number81
206
+ if (n === number82) return number82
207
+ if (n === number83) return number83
208
+ if (n === number84) return number84
209
+ if (n === number85) return number85
210
+ if (n === number86) return number86
211
+ if (n === number87) return number87
212
+ if (n === number88) return number88
213
+ if (n === number89) return number89
214
+ if (n === number90) return number90
215
+ if (n === number91) return number91
216
+ if (n === number92) return number92
217
+ if (n === number93) return number93
218
+ if (n === number94) return number94
219
+ if (n === number95) return number95
220
+ if (n === number96) return number96
221
+ if (n === number97) return number97
222
+ if (n === number98) return number98
223
+ if (n === number99) return number99
224
+ if (n === number100) return number100
225
+ immediateError("if you see this error in the console everything's broken and the world is ending. take shelter", ErrorType.BaseError)
226
+ }
227
+
228
+ function getSumComposition(targetNumber) {
229
+ if (typeof targetNumber !== 'number' || targetNumber <= number0 || isNotInteger(targetNumber)) {
230
+ return []
231
+ }
232
+
233
+ var result = []
234
+ var remaining = targetNumber
235
+
236
+ while (remaining > 0) {
237
+ var maxSubtract = Math.min(remaining, number100)
238
+
239
+ var randomNumber = mathFloor((mathRandom() * (maxSubtract + number1)))
240
+
241
+ result.push(randomNumber)
242
+ remaining -= randomNumber
243
+ }
244
+
245
+ return result
246
+ }
247
+
248
+ module.exports = numberIdentity
package/license ADDED
@@ -0,0 +1,24 @@
1
+ This is free and unencumbered software released into the public domain.
2
+
3
+ Anyone is free to copy, modify, publish, use, compile, sell, or
4
+ distribute this software, either in source code form or as a compiled
5
+ binary, for any purpose, commercial or non-commercial, and by any
6
+ means.
7
+
8
+ In jurisdictions that recognize copyright laws, the author or authors
9
+ of this software dedicate any and all copyright interest in the
10
+ software to the public domain. We make this dedication for the benefit
11
+ of the public at large and to the detriment of our heirs and
12
+ successors. We intend this dedication to be an overt act of
13
+ relinquishment in perpetuity of all present and future rights to this
14
+ software under copyright law.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
23
+
24
+ For more information, please refer to <https://unlicense.org/>
package/package.json ADDED
@@ -0,0 +1,136 @@
1
+ {
2
+ "name": "@identity-js/number-identity",
3
+ "version": "1.0.0",
4
+ "description": "Returns the number passed into the function.",
5
+ "keywords": [
6
+ "number",
7
+ "compose",
8
+ "is",
9
+ "idk"
10
+ ],
11
+ "homepage": "https://github.com/10xEngineersQualityProgramming/identity#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/10xEngineersQualityProgramming/identity/issues"
14
+ },
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/10xEngineersQualityProgramming/identity.git"
18
+ },
19
+ "license": "Unlicense",
20
+ "author": "me",
21
+ "type": "commonjs",
22
+ "main": "index.js",
23
+ "scripts": {
24
+ "test": "mocha test/index.js"
25
+ },
26
+ "dependencies": {
27
+ "@positive-numbers/eight": "^1.0.0",
28
+ "@positive-numbers/eighteen": "^1.0.0",
29
+ "@positive-numbers/eighty": "^1.0.0",
30
+ "@positive-numbers/eighty-eight": "^1.0.0",
31
+ "@positive-numbers/eighty-five": "^1.0.0",
32
+ "@positive-numbers/eighty-four": "^1.0.0",
33
+ "@positive-numbers/eighty-nine": "^1.0.0",
34
+ "@positive-numbers/eighty-one": "^1.0.0",
35
+ "@positive-numbers/eighty-seven": "^1.0.0",
36
+ "@positive-numbers/eighty-six": "^1.0.0",
37
+ "@positive-numbers/eighty-three": "^1.0.0",
38
+ "@positive-numbers/eighty-two": "^1.0.0",
39
+ "@positive-numbers/eleven": "^1.0.0",
40
+ "@positive-numbers/fifteen": "^1.0.0",
41
+ "@positive-numbers/fifty": "^1.0.0",
42
+ "@positive-numbers/fifty-eight": "^1.0.0",
43
+ "@positive-numbers/fifty-five": "^1.0.0",
44
+ "@positive-numbers/fifty-four": "^1.0.0",
45
+ "@positive-numbers/fifty-nine": "^1.0.0",
46
+ "@positive-numbers/fifty-one": "^1.0.0",
47
+ "@positive-numbers/fifty-seven": "^1.0.0",
48
+ "@positive-numbers/fifty-six": "^1.0.0",
49
+ "@positive-numbers/fifty-three": "^1.0.0",
50
+ "@positive-numbers/fifty-two": "^1.0.0",
51
+ "@positive-numbers/five": "^1.0.0",
52
+ "@positive-numbers/forty": "^1.0.0",
53
+ "@positive-numbers/forty-eight": "^1.0.0",
54
+ "@positive-numbers/forty-five": "^1.0.0",
55
+ "@positive-numbers/forty-four": "^1.0.0",
56
+ "@positive-numbers/forty-nine": "^1.0.0",
57
+ "@positive-numbers/forty-one": "^1.0.0",
58
+ "@positive-numbers/forty-seven": "^1.0.0",
59
+ "@positive-numbers/forty-six": "^1.0.0",
60
+ "@positive-numbers/forty-three": "^1.0.0",
61
+ "@positive-numbers/forty-two": "^1.0.0",
62
+ "@positive-numbers/four": "^1.0.0",
63
+ "@positive-numbers/fourteen": "^1.0.0",
64
+ "@positive-numbers/nine": "^1.0.0",
65
+ "@positive-numbers/nineteen": "^1.1.0",
66
+ "@positive-numbers/ninety": "^1.0.0",
67
+ "@positive-numbers/ninety-eight": "^1.0.0",
68
+ "@positive-numbers/ninety-five": "^1.0.0",
69
+ "@positive-numbers/ninety-four": "^1.0.0",
70
+ "@positive-numbers/ninety-nine": "^1.0.0",
71
+ "@positive-numbers/ninety-one": "^1.0.0",
72
+ "@positive-numbers/ninety-seven": "^1.0.0",
73
+ "@positive-numbers/ninety-six": "^1.0.0",
74
+ "@positive-numbers/ninety-three": "^1.0.0",
75
+ "@positive-numbers/ninety-two": "^1.0.0",
76
+ "@positive-numbers/one": "^1.0.0",
77
+ "@positive-numbers/one-hundred": "^1.0.0",
78
+ "@positive-numbers/seven": "^1.0.0",
79
+ "@positive-numbers/seventeen": "^1.0.0",
80
+ "@positive-numbers/seventy": "^1.0.0",
81
+ "@positive-numbers/seventy-eight": "^1.0.0",
82
+ "@positive-numbers/seventy-five": "^1.0.0",
83
+ "@positive-numbers/seventy-four": "^1.0.0",
84
+ "@positive-numbers/seventy-nine": "^1.0.0",
85
+ "@positive-numbers/seventy-one": "^1.0.0",
86
+ "@positive-numbers/seventy-seven": "^1.0.0",
87
+ "@positive-numbers/seventy-six": "^1.0.0",
88
+ "@positive-numbers/seventy-three": "^1.0.0",
89
+ "@positive-numbers/seventy-two": "^1.0.0",
90
+ "@positive-numbers/six": "^1.0.0",
91
+ "@positive-numbers/sixteen": "^1.0.0",
92
+ "@positive-numbers/sixty": "^1.0.0",
93
+ "@positive-numbers/sixty-eight": "^1.0.0",
94
+ "@positive-numbers/sixty-five": "^1.0.0",
95
+ "@positive-numbers/sixty-four": "^1.0.0",
96
+ "@positive-numbers/sixty-nine": "^1.0.0",
97
+ "@positive-numbers/sixty-one": "^1.0.0",
98
+ "@positive-numbers/sixty-seven": "^1.0.0",
99
+ "@positive-numbers/sixty-six": "^1.0.0",
100
+ "@positive-numbers/sixty-three": "^1.0.0",
101
+ "@positive-numbers/sixty-two": "^1.0.0",
102
+ "@positive-numbers/ten": "^1.0.0",
103
+ "@positive-numbers/thirteen": "^1.0.0",
104
+ "@positive-numbers/thirty": "^1.0.0",
105
+ "@positive-numbers/thirty-eight": "^1.0.0",
106
+ "@positive-numbers/thirty-five": "^1.0.0",
107
+ "@positive-numbers/thirty-four": "^1.0.0",
108
+ "@positive-numbers/thirty-nine": "^1.0.0",
109
+ "@positive-numbers/thirty-one": "^1.0.0",
110
+ "@positive-numbers/thirty-seven": "^1.0.0",
111
+ "@positive-numbers/thirty-six": "^1.0.0",
112
+ "@positive-numbers/thirty-three": "^1.0.0",
113
+ "@positive-numbers/thirty-two": "^1.0.0",
114
+ "@positive-numbers/three": "^1.0.0",
115
+ "@positive-numbers/twelve": "^1.0.0",
116
+ "@positive-numbers/twenty": "^1.1.0",
117
+ "@positive-numbers/twenty-eight": "^1.0.0",
118
+ "@positive-numbers/twenty-five": "^1.0.0",
119
+ "@positive-numbers/twenty-four": "^1.0.0",
120
+ "@positive-numbers/twenty-nine": "^1.0.0",
121
+ "@positive-numbers/twenty-one": "^1.0.0",
122
+ "@positive-numbers/twenty-seven": "^1.0.0",
123
+ "@positive-numbers/twenty-six": "^1.0.0",
124
+ "@positive-numbers/twenty-three": "^1.0.0",
125
+ "@positive-numbers/twenty-two": "^1.0.0",
126
+ "@positive-numbers/two": "^1.0.0",
127
+ "@positive-numbers/zero": "^1.0.0",
128
+ "get-intrinsic": "^1.3.0",
129
+ "immediate-error": "^6.2.0",
130
+ "is-not-integer": "^1.0.2"
131
+ },
132
+ "devDependencies": {
133
+ "chai": "^6.2.1",
134
+ "mocha": "^11.7.5"
135
+ }
136
+ }