@rogolev/value 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. package/.prettierignore +4 -0
  2. package/CHANGELOG.md +56 -0
  3. package/LICENSE +41 -0
  4. package/README.md +91 -0
  5. package/babel.config.json +20 -0
  6. package/docs/helpers/array.md +80 -0
  7. package/docs/helpers/empty.md +77 -0
  8. package/docs/helpers/gettype.md +69 -0
  9. package/docs/helpers/is_array.md +105 -0
  10. package/docs/helpers/is_assoc.md +59 -0
  11. package/docs/helpers/is_bigint.md +57 -0
  12. package/docs/helpers/is_bool.md +50 -0
  13. package/docs/helpers/is_boolean.md +50 -0
  14. package/docs/helpers/is_class.md +73 -0
  15. package/docs/helpers/is_float.md +71 -0
  16. package/docs/helpers/is_function.md +62 -0
  17. package/docs/helpers/is_infinity.md +61 -0
  18. package/docs/helpers/is_int.md +81 -0
  19. package/docs/helpers/is_integer.md +82 -0
  20. package/docs/helpers/is_list.md +51 -0
  21. package/docs/helpers/is_nan.md +59 -0
  22. package/docs/helpers/is_null.md +49 -0
  23. package/docs/helpers/is_number.md +67 -0
  24. package/docs/helpers/is_numeric.md +76 -0
  25. package/docs/helpers/is_object.md +69 -0
  26. package/docs/helpers/is_scalar.md +60 -0
  27. package/docs/helpers/is_string.md +58 -0
  28. package/docs/helpers/is_symbol.md +58 -0
  29. package/docs/helpers/is_undefined.md +56 -0
  30. package/docs/helpers/print.md +187 -0
  31. package/docs/helpers/print_type.md +225 -0
  32. package/docs/helpers/settype.md +78 -0
  33. package/docs/helpers/to_array.md +106 -0
  34. package/docs/helpers/to_assoc.md +91 -0
  35. package/docs/helpers/to_bool.md +76 -0
  36. package/docs/helpers/to_boolean.md +77 -0
  37. package/docs/helpers/to_float.md +70 -0
  38. package/docs/helpers/to_int.md +87 -0
  39. package/docs/helpers/to_integer.md +87 -0
  40. package/docs/helpers/to_list.md +47 -0
  41. package/docs/helpers/to_object.md +76 -0
  42. package/docs/helpers/to_string.md +134 -0
  43. package/docs/helpers.md +51 -0
  44. package/docs/types/NaN.md +30 -0
  45. package/docs/types/array.md +252 -0
  46. package/docs/types/bigint.md +34 -0
  47. package/docs/types/boolean.md +47 -0
  48. package/docs/types/class.md +36 -0
  49. package/docs/types/float.md +35 -0
  50. package/docs/types/function.md +121 -0
  51. package/docs/types/infinity.md +32 -0
  52. package/docs/types/integer.md +35 -0
  53. package/docs/types/null.md +23 -0
  54. package/docs/types/object.md +62 -0
  55. package/docs/types/string.md +33 -0
  56. package/docs/types/symbol.md +29 -0
  57. package/docs/types/undefined.md +25 -0
  58. package/docs/types.md +44 -0
  59. package/eslint.config.mjs +1664 -0
  60. package/index.mjs +37 -0
  61. package/jest.config.mjs +31 -0
  62. package/package.json +47 -0
  63. package/prettier.config.mjs +224 -0
  64. package/src/helpers/array.mjs +107 -0
  65. package/src/helpers/empty.mjs +70 -0
  66. package/src/helpers/gettype.mjs +133 -0
  67. package/src/helpers/is_array.mjs +128 -0
  68. package/src/helpers/is_assoc.mjs +51 -0
  69. package/src/helpers/is_bigint.mjs +47 -0
  70. package/src/helpers/is_bool.mjs +43 -0
  71. package/src/helpers/is_boolean.mjs +43 -0
  72. package/src/helpers/is_class.mjs +87 -0
  73. package/src/helpers/is_float.mjs +67 -0
  74. package/src/helpers/is_function.mjs +74 -0
  75. package/src/helpers/is_infinity.mjs +52 -0
  76. package/src/helpers/is_int.mjs +57 -0
  77. package/src/helpers/is_integer.mjs +74 -0
  78. package/src/helpers/is_list.mjs +43 -0
  79. package/src/helpers/is_nan.mjs +51 -0
  80. package/src/helpers/is_null.mjs +37 -0
  81. package/src/helpers/is_number.mjs +49 -0
  82. package/src/helpers/is_numeric.mjs +64 -0
  83. package/src/helpers/is_object.mjs +72 -0
  84. package/src/helpers/is_scalar.mjs +45 -0
  85. package/src/helpers/is_string.mjs +46 -0
  86. package/src/helpers/is_symbol.mjs +46 -0
  87. package/src/helpers/is_undefined.mjs +44 -0
  88. package/src/helpers/print.mjs +245 -0
  89. package/src/helpers/print_type.mjs +261 -0
  90. package/src/helpers/settype.mjs +101 -0
  91. package/src/helpers/to_array.mjs +118 -0
  92. package/src/helpers/to_assoc.mjs +98 -0
  93. package/src/helpers/to_bool.mjs +68 -0
  94. package/src/helpers/to_boolean.mjs +64 -0
  95. package/src/helpers/to_float.mjs +72 -0
  96. package/src/helpers/to_int.mjs +93 -0
  97. package/src/helpers/to_integer.mjs +81 -0
  98. package/src/helpers/to_list.mjs +56 -0
  99. package/src/helpers/to_object.mjs +94 -0
  100. package/src/helpers/to_string.mjs +157 -0
  101. package/tests/helpers/array.test.mjs +58 -0
  102. package/tests/helpers/empty.test.mjs +22 -0
  103. package/tests/helpers/gettype.test.mjs +74 -0
  104. package/tests/helpers/is_array.test.mjs +404 -0
  105. package/tests/helpers/is_assoc.test.mjs +42 -0
  106. package/tests/helpers/is_bigint.test.mjs +51 -0
  107. package/tests/helpers/is_bool.test.mjs +43 -0
  108. package/tests/helpers/is_boolean.test.mjs +43 -0
  109. package/tests/helpers/is_class.test.mjs +84 -0
  110. package/tests/helpers/is_float.test.mjs +87 -0
  111. package/tests/helpers/is_function.test.mjs +83 -0
  112. package/tests/helpers/is_infinity.test.mjs +46 -0
  113. package/tests/helpers/is_int.test.mjs +45 -0
  114. package/tests/helpers/is_integer.test.mjs +64 -0
  115. package/tests/helpers/is_list.test.mjs +42 -0
  116. package/tests/helpers/is_nan.test.mjs +43 -0
  117. package/tests/helpers/is_null.test.mjs +17 -0
  118. package/tests/helpers/is_number.test.mjs +25 -0
  119. package/tests/helpers/is_numeric.test.mjs +30 -0
  120. package/tests/helpers/is_object.test.mjs +52 -0
  121. package/tests/helpers/is_scalar.test.mjs +21 -0
  122. package/tests/helpers/is_string.test.mjs +20 -0
  123. package/tests/helpers/is_symbol.test.mjs +20 -0
  124. package/tests/helpers/is_undefined.test.mjs +18 -0
  125. package/tests/helpers/print.test.mjs +62 -0
  126. package/tests/helpers/print_type.test.mjs +62 -0
  127. package/tests/helpers/settype.test.mjs +34 -0
  128. package/tests/helpers/to_array.test.mjs +38 -0
  129. package/tests/helpers/to_assoc.test.mjs +33 -0
  130. package/tests/helpers/to_bool.test.mjs +51 -0
  131. package/tests/helpers/to_boolean.test.mjs +51 -0
  132. package/tests/helpers/to_float.test.mjs +26 -0
  133. package/tests/helpers/to_int.test.mjs +48 -0
  134. package/tests/helpers/to_integer.test.mjs +48 -0
  135. package/tests/helpers/to_list.test.mjs +32 -0
  136. package/tests/helpers/to_object.test.mjs +36 -0
  137. package/tests/helpers/to_string.test.mjs +71 -0
@@ -0,0 +1,404 @@
1
+ import { expect, test, describe } from '@jest/globals';
2
+ import { is_array } from '../../index.mjs';
3
+
4
+ class stdClass {}
5
+
6
+ describe('Функция is_array', () => {
7
+ describe('Примитивные значения и базовые типы', () => {
8
+ test('false не является массивом', () => {
9
+ expect(is_array(false)).toBeFalsy();
10
+ });
11
+
12
+ test('true не является массивом', () => {
13
+ expect(is_array(true)).toBeFalsy();
14
+ });
15
+
16
+ test('Число 3 не является массивом', () => {
17
+ expect(is_array(3)).toBeFalsy();
18
+ });
19
+
20
+ test('Число 3.14 не является массивом', () => {
21
+ expect(is_array(3.14)).toBeFalsy();
22
+ });
23
+
24
+ test('Строка "string" не является массивом', () => {
25
+ expect(is_array('string')).toBeFalsy();
26
+ });
27
+
28
+ test('null не является массивом', () => {
29
+ expect(is_array(null)).toBeFalsy();
30
+ });
31
+
32
+ test('undefined не является массивом', () => {
33
+ expect(is_array(undefined)).toBeFalsy();
34
+ });
35
+
36
+ test('NaN не является массивом', () => {
37
+ expect(is_array(NaN)).toBeFalsy();
38
+ });
39
+
40
+ test('Symbol не является массивом', () => {
41
+ expect(is_array(Symbol())).toBeFalsy();
42
+ });
43
+ });
44
+
45
+ describe('Массивы и объекты', () => {
46
+ test('Обычный массив [1, 2] является массивом', () => {
47
+ expect(is_array([1, 2])).toBeTruthy();
48
+ });
49
+
50
+ test('Объект с парами ключ-значение {0: 1, 1: 2} является ассоциативным массивом', () => {
51
+ expect(is_array({ 0: 1, 1: 2 })).toBeTruthy();
52
+ });
53
+
54
+ test('Объект {foo: "bar"} является ассоциативным массивом', () => {
55
+ expect(is_array({ foo: 'bar' })).toBeTruthy();
56
+ });
57
+
58
+ test('Объект, созданный через Object.create(null), является ассоциативным массивом', () => {
59
+ const noProtoObject = Object.create(null);
60
+ noProtoObject.foo = 'bar';
61
+ expect(is_array(noProtoObject)).toBeTruthy();
62
+ });
63
+
64
+ test('Proxy является массивом', () => {
65
+ const handler = {};
66
+ const proxy = new Proxy([1, 2, 3], handler); // Проксируем массив
67
+ expect(is_array(proxy)).toBeTruthy();
68
+ });
69
+ });
70
+
71
+ describe('Не массивы', () => {
72
+ describe('Классы', () => {
73
+ test('Экземпляр класса stdClass не является массивом', () => {
74
+ expect(is_array(new stdClass())).toBeFalsy();
75
+ });
76
+
77
+ test('Класс stdClass сам по себе не является массивом', () => {
78
+ expect(is_array(stdClass)).toBeFalsy();
79
+ });
80
+ });
81
+
82
+ describe('Глобальные объекты', () => {
83
+ // Массив глобальных объектов, которые не являются массивами
84
+ const globalObjects = [Object, Function, Boolean];
85
+
86
+ globalObjects.forEach((globalObj) => {
87
+ test(`${globalObj.name} не является массивом`, () => {
88
+ expect(is_array(globalObj)).toBeFalsy();
89
+ });
90
+ });
91
+
92
+ test('Symbol не является массивом', () => {
93
+ expect(is_array(Symbol)).toBeFalsy();
94
+ });
95
+ });
96
+
97
+ describe('Обработка текста', () => {
98
+ test('String не является массивом', () => {
99
+ expect(is_array(String)).toBeFalsy();
100
+ });
101
+
102
+ test('RegExp не является массивом', () => {
103
+ expect(is_array(RegExp)).toBeFalsy();
104
+ expect(is_array(/abc/)).toBeFalsy();
105
+ });
106
+ });
107
+
108
+ describe('Числа и даты', () => {
109
+ test('Number не является массивом', () => {
110
+ expect(is_array(Number)).toBeFalsy();
111
+ });
112
+
113
+ test('BigInt не является массивом', () => {
114
+ expect(is_array(BigInt)).toBeFalsy();
115
+ expect(is_array(123n)).toBeFalsy();
116
+ });
117
+
118
+ test('Math не является массивом', () => {
119
+ expect(is_array(Math)).toBeFalsy();
120
+ });
121
+
122
+ test('Date не является массивом', () => {
123
+ expect(is_array(Date)).toBeFalsy();
124
+ expect(is_array(new Date())).toBeFalsy();
125
+ });
126
+ });
127
+
128
+ describe('Структурированные данные', () => {
129
+ test('Array не является массивом', () => {
130
+ expect(is_array(Array)).toBeFalsy();
131
+ });
132
+
133
+ test('Экземпляр Map не является массивом', () => {
134
+ expect(is_array(Map)).toBeFalsy();
135
+ expect(is_array(new Map())).toBeFalsy();
136
+ });
137
+
138
+ test('Экземпляр Set не является массивом', () => {
139
+ expect(is_array(Set)).toBeFalsy();
140
+ expect(is_array(new Set())).toBeFalsy();
141
+ });
142
+
143
+ test('WeakMap не является массивом', () => {
144
+ expect(is_array(WeakMap)).toBeFalsy();
145
+ expect(is_array(new WeakMap())).toBeFalsy();
146
+ });
147
+
148
+ test('WeakSet не является массивом', () => {
149
+ expect(is_array(WeakSet)).toBeFalsy();
150
+ expect(is_array(new WeakSet())).toBeFalsy();
151
+ });
152
+
153
+ test('ArrayBuffer не является массивом', () => {
154
+ expect(is_array(ArrayBuffer)).toBeFalsy();
155
+ expect(is_array(new ArrayBuffer(8))).toBeFalsy();
156
+ });
157
+
158
+ test('SharedArrayBuffer не является массивом', () => {
159
+ expect(is_array(SharedArrayBuffer)).toBeFalsy();
160
+ expect(is_array(new SharedArrayBuffer(8))).toBeFalsy();
161
+ });
162
+
163
+ test('DataView не является массивом', () => {
164
+ expect(is_array(DataView)).toBeFalsy();
165
+ expect(is_array(new DataView(new ArrayBuffer(8)))).toBeFalsy();
166
+ });
167
+
168
+ test('Typed Arrays не являются массивами', () => {
169
+ const typedArrays = [
170
+ Int8Array,
171
+ Uint8Array,
172
+ Uint8ClampedArray,
173
+ Int16Array,
174
+ Uint16Array,
175
+ Int32Array,
176
+ Uint32Array,
177
+ Float32Array,
178
+ Float64Array,
179
+ BigInt64Array,
180
+ BigUint64Array,
181
+ ];
182
+ typedArrays.forEach((ArrayType) => {
183
+ expect(is_array(ArrayType)).toBeFalsy();
184
+ expect(is_array(new ArrayType(8))).toBeFalsy();
185
+ });
186
+ });
187
+ });
188
+
189
+ describe('Объекты абстракции управления', () => {
190
+ test('Promise не является массивом', () => {
191
+ expect(is_array(new Promise(() => {}))).toBeFalsy();
192
+ });
193
+
194
+ test('Generator не является массивом', () => {
195
+ function* gen() {}
196
+ expect(is_array(gen())).toBeFalsy();
197
+ });
198
+
199
+ test('GeneratorFunction не является массивом', () => {
200
+ function* gen() {}
201
+ expect(is_array(gen.constructor)).toBeFalsy();
202
+ });
203
+
204
+ test('AsyncFunction не является массивом', () => {
205
+ async function func() {}
206
+ expect(is_array(func)).toBeFalsy();
207
+ });
208
+
209
+ test('AsyncGenerator не является массивом', () => {
210
+ async function* gen() {}
211
+ expect(is_array(gen())).toBeFalsy();
212
+ });
213
+
214
+ test('AsyncGeneratorFunction не является массивом', () => {
215
+ async function* gen() {}
216
+ expect(is_array(gen.constructor)).toBeFalsy();
217
+ });
218
+ });
219
+
220
+ describe('Отражение', () => {
221
+ test('Reflect не является массивом', () => {
222
+ expect(is_array(Reflect)).toBeFalsy();
223
+ });
224
+ });
225
+
226
+ describe('Интернационализация', () => {
227
+ test('Intl не является массивом', () => {
228
+ expect(is_array(Intl)).toBeFalsy();
229
+ });
230
+ });
231
+
232
+ describe('Обработка ошибок', () => {
233
+ const errorTypes = [
234
+ Error,
235
+ EvalError,
236
+ RangeError,
237
+ ReferenceError,
238
+ SyntaxError,
239
+ TypeError,
240
+ URIError,
241
+ ];
242
+
243
+ // Тестируем все ошибки из списка
244
+ errorTypes.forEach((errorType) => {
245
+ test(`${errorType.name} не является массивом`, () => {
246
+ expect(is_array(errorType)).toBeFalsy();
247
+ });
248
+ });
249
+ });
250
+
251
+ describe('Веб-API (объекты, зависящие от браузера)', () => {
252
+ test('Window не является массивом', () => {
253
+ expect(is_array(Window)).toBeFalsy();
254
+ });
255
+
256
+ test('document не является массивом', () => {
257
+ expect(is_array(document)).toBeFalsy();
258
+ });
259
+
260
+ test('navigator не является массивом', () => {
261
+ expect(is_array(navigator)).toBeFalsy();
262
+ });
263
+
264
+ test('location не является массивом', () => {
265
+ expect(is_array(location)).toBeFalsy();
266
+ });
267
+
268
+ test('Function не является массивом', () => {
269
+ expect(is_array(Function)).toBeFalsy();
270
+ });
271
+
272
+ test('screen не является массивом', () => {
273
+ expect(is_array(screen)).toBeFalsy();
274
+ });
275
+
276
+ test('history не является массивом', () => {
277
+ expect(is_array(history)).toBeFalsy();
278
+ });
279
+
280
+ test('localStorage не является массивом', () => {
281
+ expect(is_array(localStorage)).toBeFalsy();
282
+ });
283
+
284
+ test('Function не является массивом', () => {
285
+ expect(is_array(Function)).toBeFalsy();
286
+ });
287
+
288
+ test('sessionStorage не является массивом', () => {
289
+ expect(is_array(sessionStorage)).toBeFalsy();
290
+ });
291
+
292
+ test('XMLHttpRequest не является массивом', () => {
293
+ expect(is_array(XMLHttpRequest)).toBeFalsy();
294
+ });
295
+
296
+ test('WebSocket не является массивом', () => {
297
+ expect(is_array(WebSocket)).toBeFalsy();
298
+ expect(is_array(new WebSocket('ws://localhost'))).toBeFalsy();
299
+ });
300
+
301
+ test('Event не является массивом', () => {
302
+ expect(is_array(Event)).toBeFalsy();
303
+ expect(is_array(new Event('click'))).toBeFalsy();
304
+ });
305
+
306
+ test('CustomEvent не является массивом', () => {
307
+ expect(is_array(CustomEvent)).toBeFalsy();
308
+ expect(is_array(new CustomEvent('test'))).toBeFalsy();
309
+ });
310
+
311
+ test('AbortController не является массивом', () => {
312
+ expect(is_array(AbortController)).toBeFalsy();
313
+ expect(is_array(new AbortController())).toBeFalsy();
314
+ });
315
+
316
+ test('FormData не является массивом', () => {
317
+ expect(is_array(FormData)).toBeFalsy();
318
+ });
319
+
320
+ test('Blob не является массивом', () => {
321
+ expect(is_array(Blob)).toBeFalsy();
322
+ expect(is_array(new Blob([]))).toBeFalsy();
323
+ });
324
+
325
+ test('File не является массивом', () => {
326
+ expect(is_array(File)).toBeFalsy();
327
+ expect(is_array(new File([], 'test.txt'))).toBeFalsy();
328
+ });
329
+
330
+ test('FileReader не является массивом', () => {
331
+ expect(is_array(FileReader)).toBeFalsy();
332
+ expect(is_array(new FileReader())).toBeFalsy();
333
+ });
334
+
335
+ test('Performance не является массивом', () => {
336
+ expect(is_array(Performance)).toBeFalsy();
337
+ });
338
+ });
339
+
340
+ describe('Веб-хранилище и сетевое взаимодействие', () => {
341
+ test('URL не является массивом', () => {
342
+ expect(is_array(URL)).toBeFalsy();
343
+ });
344
+
345
+ test('URLSearchParams не является массивом', () => {
346
+ expect(is_array(URLSearchParams)).toBeFalsy();
347
+ });
348
+
349
+ test('Location не является массивом', () => {
350
+ expect(is_array(Location)).toBeFalsy();
351
+ });
352
+
353
+ test('Cookies не является массивом', () => {
354
+ expect(is_array(document.cookie)).toBeFalsy();
355
+ });
356
+
357
+ test('IndexedDB не является массивом', () => {
358
+ expect(is_array(window.indexedDB)).toBeFalsy();
359
+ });
360
+ });
361
+
362
+ describe('Другие', () => {
363
+ test('JSON не является массивом', () => {
364
+ expect(is_array(JSON)).toBeFalsy();
365
+ });
366
+
367
+ test('Math не является массивом', () => {
368
+ expect(is_array(Math)).toBeFalsy();
369
+ });
370
+
371
+ test('console не является массивом', () => {
372
+ expect(is_array(console)).toBeFalsy();
373
+ });
374
+
375
+ test('setTimeout не является массивом', () => {
376
+ expect(is_array(setTimeout)).toBeFalsy();
377
+ });
378
+
379
+ test('clearTimeout не является массивом', () => {
380
+ expect(is_array(clearTimeout)).toBeFalsy();
381
+ });
382
+
383
+ test('setInterval не является массивом', () => {
384
+ expect(is_array(setInterval)).toBeFalsy();
385
+ });
386
+
387
+ test('clearInterval не является массивом', () => {
388
+ expect(is_array(clearInterval)).toBeFalsy();
389
+ });
390
+
391
+ test('setImmediate не является массивом', () => {
392
+ expect(is_array(setImmediate)).toBeFalsy();
393
+ });
394
+
395
+ test('clearImmediate не является массивом', () => {
396
+ expect(is_array(clearImmediate)).toBeFalsy();
397
+ });
398
+
399
+ test('process не является массивом', () => {
400
+ expect(is_array(process)).toBeFalsy();
401
+ });
402
+ });
403
+ });
404
+ });
@@ -0,0 +1,42 @@
1
+ import { expect, test } from '@jest/globals';
2
+ import { is_assoc } from '../../index.mjs';
3
+
4
+ describe('Функция is_assoc', () => {
5
+ test('должна возвращать true для ассоциативных массивов', () => {
6
+ expect(is_assoc({ foo: 'bar' })).toBe(true);
7
+ expect(is_assoc({})).toBe(true);
8
+ });
9
+
10
+ test('должна возвращать false для обычных массивов', () => {
11
+ expect(is_assoc([])).toBe(false);
12
+ expect(is_assoc([1, 2, 3])).toBe(false);
13
+ });
14
+
15
+ test('должна возвращать false для строк', () => {
16
+ expect(is_assoc('string')).toBe(false);
17
+ });
18
+
19
+ test('должна возвращать false для чисел', () => {
20
+ expect(is_assoc(42)).toBe(false);
21
+ });
22
+
23
+ test('должна возвращать false для null и undefined', () => {
24
+ expect(is_assoc(null)).toBe(false);
25
+ expect(is_assoc(undefined)).toBe(false);
26
+ });
27
+
28
+ test('должна возвращать false для логических значений', () => {
29
+ expect(is_assoc(true)).toBe(false);
30
+ expect(is_assoc(false)).toBe(false);
31
+ });
32
+
33
+ test('должна возвращать false для функций', () => {
34
+ function func() {}
35
+ expect(is_assoc(func)).toBe(false);
36
+ expect(is_assoc(() => {})).toBe(false);
37
+ });
38
+
39
+ test('должна возвращать false для символов', () => {
40
+ expect(is_assoc(Symbol('symbol'))).toBe(false);
41
+ });
42
+ });
@@ -0,0 +1,51 @@
1
+ import { expect, test } from '@jest/globals';
2
+ import { is_bigint } from '../../index.mjs';
3
+
4
+ describe('Функция is_bigint', () => {
5
+ test('должна возвращать true для значений типа bigint', () => {
6
+ expect(is_bigint(BigInt(123456))).toBe(true);
7
+ expect(is_bigint(BigInt(-123456))).toBe(true);
8
+ });
9
+
10
+ test('должна возвращать false для чисел', () => {
11
+ expect(is_bigint(42)).toBe(false);
12
+ expect(is_bigint(-42)).toBe(false);
13
+ expect(is_bigint(0)).toBe(false);
14
+ expect(is_bigint(3.14)).toBe(false);
15
+ expect(is_bigint(-0.99)).toBe(false);
16
+ });
17
+
18
+ test('должна возвращать false для специальных чисел', () => {
19
+ expect(is_bigint(NaN)).toBe(false);
20
+ expect(is_bigint(Infinity)).toBe(false);
21
+ expect(is_bigint(-Infinity)).toBe(false);
22
+ });
23
+
24
+ test('должна возвращать false для строк', () => {
25
+ expect(is_bigint('42')).toBe(false);
26
+ expect(is_bigint('3.14')).toBe(false);
27
+ expect(is_bigint('')).toBe(false);
28
+ });
29
+
30
+ test('должна возвращать false для логических значений', () => {
31
+ expect(is_bigint(true)).toBe(false);
32
+ expect(is_bigint(false)).toBe(false);
33
+ });
34
+
35
+ test('должна возвращать false для null и undefined', () => {
36
+ expect(is_bigint(null)).toBe(false);
37
+ expect(is_bigint(undefined)).toBe(false);
38
+ });
39
+
40
+ test('должна возвращать false для объектов и массивов', () => {
41
+ expect(is_bigint({})).toBe(false);
42
+ expect(is_bigint([])).toBe(false);
43
+ expect(is_bigint({ foo: 42 })).toBe(false);
44
+ expect(is_bigint([1, 2, 3])).toBe(false);
45
+ });
46
+
47
+ test('должна возвращать false для функций', () => {
48
+ expect(is_bigint(() => {})).toBe(false);
49
+ expect(is_bigint(() => {})).toBe(false);
50
+ });
51
+ });
@@ -0,0 +1,43 @@
1
+ import { expect, test, describe } from '@jest/globals';
2
+ import { is_bool } from '../../index.mjs';
3
+
4
+ describe('Функция is_bool', () => {
5
+ test('должна возвращать true для значения true', () => {
6
+ expect(is_bool(true)).toBe(true);
7
+ });
8
+
9
+ test('должна возвращать true для значения false', () => {
10
+ expect(is_bool(false)).toBe(true);
11
+ });
12
+
13
+ test('должна возвращать false для значения числа', () => {
14
+ expect(is_bool(0)).toBe(false);
15
+ expect(is_bool(1)).toBe(false);
16
+ });
17
+
18
+ test('должна возвращать false для строки', () => {
19
+ expect(is_bool('true')).toBe(false);
20
+ expect(is_bool('false')).toBe(false);
21
+ });
22
+
23
+ test('должна возвращать false для объекта', () => {
24
+ expect(is_bool({})).toBe(false);
25
+ expect(is_bool([])).toBe(false);
26
+ });
27
+
28
+ test('должна возвращать false для null', () => {
29
+ expect(is_bool(null)).toBe(false);
30
+ });
31
+
32
+ test('должна возвращать false для undefined', () => {
33
+ expect(is_bool(undefined)).toBe(false);
34
+ });
35
+
36
+ test('должна возвращать false для функции', () => {
37
+ expect(is_bool(() => {})).toBe(false);
38
+ });
39
+
40
+ test('должна возвращать false для объекта Boolean', () => {
41
+ expect(is_bool(new Boolean(true))).toBe(false);
42
+ });
43
+ });
@@ -0,0 +1,43 @@
1
+ import { expect, test, describe } from '@jest/globals';
2
+ import { is_boolean } from '../../index.mjs';
3
+
4
+ describe('Функция is_boolean', () => {
5
+ test('должна возвращать true для значения true', () => {
6
+ expect(is_boolean(true)).toBe(true);
7
+ });
8
+
9
+ test('должна возвращать true для значения false', () => {
10
+ expect(is_boolean(false)).toBe(true);
11
+ });
12
+
13
+ test('должна возвращать false для значения числа', () => {
14
+ expect(is_boolean(0)).toBe(false);
15
+ expect(is_boolean(1)).toBe(false);
16
+ });
17
+
18
+ test('должна возвращать false для строки', () => {
19
+ expect(is_boolean('true')).toBe(false);
20
+ expect(is_boolean('false')).toBe(false);
21
+ });
22
+
23
+ test('должна возвращать false для объекта', () => {
24
+ expect(is_boolean({})).toBe(false);
25
+ expect(is_boolean([])).toBe(false);
26
+ });
27
+
28
+ test('должна возвращать false для null', () => {
29
+ expect(is_boolean(null)).toBe(false);
30
+ });
31
+
32
+ test('должна возвращать false для undefined', () => {
33
+ expect(is_boolean(undefined)).toBe(false);
34
+ });
35
+
36
+ test('должна возвращать false для функции', () => {
37
+ expect(is_boolean(() => {})).toBe(false);
38
+ });
39
+
40
+ test('должна возвращать false для объекта Boolean', () => {
41
+ expect(is_boolean(new Boolean(true))).toBe(false);
42
+ });
43
+ });
@@ -0,0 +1,84 @@
1
+ import { expect, test } from '@jest/globals';
2
+ import { is_class } from '../../index.mjs';
3
+
4
+ describe('Функция is_class', () => {
5
+ test('должна возвращать true для класса', () => {
6
+ class MyClass {}
7
+ expect(is_class(MyClass)).toBe(true);
8
+ });
9
+
10
+ test('должна возвращать false для функции-конструктора', () => {
11
+ function MyFunction() {}
12
+ expect(is_class(MyFunction)).toBe(false);
13
+ });
14
+
15
+ test('должна возвращать false для объектов', () => {
16
+ expect(is_class({})).toBe(false);
17
+ });
18
+
19
+ test('должна возвращать false для массивов', () => {
20
+ expect(is_class([])).toBe(false);
21
+ });
22
+
23
+ test('должна возвращать false для null', () => {
24
+ expect(is_class(null)).toBe(false);
25
+ });
26
+
27
+ test('должна возвращать false для чисел', () => {
28
+ expect(is_class(42)).toBe(false);
29
+ });
30
+
31
+ test('должна возвращать false для строк', () => {
32
+ expect(is_class('hello')).toBe(false);
33
+ });
34
+
35
+ test('должна возвращать false для булевых значений', () => {
36
+ expect(is_class(true)).toBe(false);
37
+ });
38
+
39
+ test('должна возвращать false для встроенных объектов, таких как Map', () => {
40
+ expect(is_class(new Map())).toBe(false);
41
+ });
42
+
43
+ test('должна возвращать false для встроенных объектов, таких как Date', () => {
44
+ expect(is_class(new Date())).toBe(false);
45
+ });
46
+
47
+ test('должна возвращать false для объекта, созданного через Object.create(null)', () => {
48
+ const noProtoObject = Object.create(null);
49
+ noProtoObject.foo = 'bar';
50
+ expect(is_class(noProtoObject)).toBe(false);
51
+ });
52
+
53
+ test('должна возвращать false для стрелочных функций', () => {
54
+ expect(is_class(() => {})).toBe(false);
55
+ });
56
+
57
+ test('должна возвращать false для async функций', () => {
58
+ async function asyncFunc() {}
59
+ expect(is_class(asyncFunc)).toBe(false);
60
+ });
61
+
62
+ test('должна возвращать false для генераторов', () => {
63
+ function* generatorFunc() {}
64
+ expect(is_class(generatorFunc)).toBe(false);
65
+ });
66
+
67
+ test('должна возвращать false для async генераторов', () => {
68
+ async function* asyncGeneratorFunc() {}
69
+ expect(is_class(asyncGeneratorFunc)).toBe(false);
70
+ });
71
+
72
+ test('должна возвращать false для символов', () => {
73
+ expect(is_class(Symbol('symbol'))).toBe(false);
74
+ });
75
+
76
+ test('должна возвращать false для объектов с методом toString', () => {
77
+ const obj = {
78
+ toString() {
79
+ return 'class';
80
+ },
81
+ };
82
+ expect(is_class(obj)).toBe(false);
83
+ });
84
+ });