@rogolev/value 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +19 -1
  3. package/docs/classes/Value/constructor.md +48 -0
  4. package/docs/classes/Value/get.md +51 -0
  5. package/docs/classes/Value/getType.md +71 -0
  6. package/docs/classes/Value/isArray.md +67 -0
  7. package/docs/classes/Value/isAssoc.md +68 -0
  8. package/docs/classes/Value/isBigInt.md +52 -0
  9. package/docs/classes/Value/isBool.md +60 -0
  10. package/docs/classes/Value/isBoolean.md +60 -0
  11. package/docs/classes/Value/isClass.md +55 -0
  12. package/docs/classes/Value/isEmpty.md +84 -0
  13. package/docs/classes/Value/isFloat.md +52 -0
  14. package/docs/classes/Value/isFunction.md +60 -0
  15. package/docs/classes/Value/isInfinity.md +60 -0
  16. package/docs/classes/Value/isInt.md +52 -0
  17. package/docs/classes/Value/isInteger.md +52 -0
  18. package/docs/classes/Value/isList.md +59 -0
  19. package/docs/classes/Value/isNaN.md +79 -0
  20. package/docs/classes/Value/isNull.md +59 -0
  21. package/docs/classes/Value/isNumber.md +80 -0
  22. package/docs/classes/Value/isNumeric.md +79 -0
  23. package/docs/classes/Value/isObject.md +68 -0
  24. package/docs/classes/Value/isScalar.md +72 -0
  25. package/docs/classes/Value/isString.md +67 -0
  26. package/docs/classes/Value/isSymbol.md +75 -0
  27. package/docs/classes/Value/isUndefined.md +67 -0
  28. package/docs/classes/Value/print.md +164 -0
  29. package/docs/classes/Value/printType.md +158 -0
  30. package/docs/classes/Value/setType.md +79 -0
  31. package/docs/classes/Value/toArray.md +85 -0
  32. package/docs/classes/Value/toAssoc.md +85 -0
  33. package/docs/classes/Value/toBool.md +71 -0
  34. package/docs/classes/Value/toBoolean.md +71 -0
  35. package/docs/classes/Value/toFloat.md +72 -0
  36. package/docs/classes/Value/toInt.md +72 -0
  37. package/docs/classes/Value/toInteger.md +72 -0
  38. package/docs/classes/Value/toList.md +77 -0
  39. package/docs/classes/Value/toObject.md +78 -0
  40. package/docs/classes/Value/toPrint.md +115 -0
  41. package/docs/classes/Value/toPrintType.md +110 -0
  42. package/docs/classes/Value/toString.md +134 -0
  43. package/docs/classes/Value.md +113 -0
  44. package/docs/classes.md +2 -0
  45. package/docs/constants.md +47 -0
  46. package/docs/helpers/value.md +95 -0
  47. package/docs/helpers.md +2 -0
  48. package/index.mjs +3 -0
  49. package/package.json +2 -2
  50. package/src/classes/Convert.mjs +818 -819
  51. package/src/classes/Type.mjs +1284 -1285
  52. package/src/classes/Value.mjs +2846 -0
  53. package/src/constants.mjs +14 -0
  54. package/src/helpers/array.mjs +107 -107
  55. package/src/helpers/empty.mjs +70 -70
  56. package/src/helpers/gettype.mjs +149 -133
  57. package/src/helpers/is_array.mjs +128 -128
  58. package/src/helpers/is_assoc.mjs +51 -51
  59. package/src/helpers/is_bigint.mjs +47 -47
  60. package/src/helpers/is_bool.mjs +43 -43
  61. package/src/helpers/is_boolean.mjs +43 -43
  62. package/src/helpers/is_class.mjs +87 -87
  63. package/src/helpers/is_float.mjs +67 -67
  64. package/src/helpers/is_function.mjs +74 -74
  65. package/src/helpers/is_infinity.mjs +52 -52
  66. package/src/helpers/is_int.mjs +57 -57
  67. package/src/helpers/is_integer.mjs +74 -74
  68. package/src/helpers/is_list.mjs +43 -43
  69. package/src/helpers/is_nan.mjs +51 -51
  70. package/src/helpers/is_null.mjs +37 -37
  71. package/src/helpers/is_number.mjs +49 -49
  72. package/src/helpers/is_numeric.mjs +64 -64
  73. package/src/helpers/is_object.mjs +72 -72
  74. package/src/helpers/is_scalar.mjs +45 -45
  75. package/src/helpers/is_string.mjs +46 -46
  76. package/src/helpers/is_symbol.mjs +46 -46
  77. package/src/helpers/is_undefined.mjs +44 -44
  78. package/src/helpers/print.mjs +245 -245
  79. package/src/helpers/print_type.mjs +261 -261
  80. package/src/helpers/settype.mjs +101 -101
  81. package/src/helpers/to_array.mjs +118 -118
  82. package/src/helpers/to_assoc.mjs +98 -98
  83. package/src/helpers/to_bool.mjs +68 -68
  84. package/src/helpers/to_boolean.mjs +64 -64
  85. package/src/helpers/to_float.mjs +72 -72
  86. package/src/helpers/to_int.mjs +93 -93
  87. package/src/helpers/to_integer.mjs +81 -81
  88. package/src/helpers/to_list.mjs +56 -56
  89. package/src/helpers/to_object.mjs +94 -94
  90. package/src/helpers/to_string.mjs +157 -157
  91. package/src/helpers/value.mjs +92 -0
  92. package/tests/classes/Convert.test.mjs +398 -399
  93. package/tests/classes/Type.test.mjs +1262 -1263
  94. package/tests/classes/Value.test.mjs +423 -0
  95. package/tests/constants.test.mjs +75 -0
  96. package/tests/helpers/array.test.mjs +58 -58
  97. package/tests/helpers/empty.test.mjs +22 -22
  98. package/tests/helpers/gettype.test.mjs +74 -74
  99. package/tests/helpers/is_array.test.mjs +404 -404
  100. package/tests/helpers/is_assoc.test.mjs +42 -42
  101. package/tests/helpers/is_bigint.test.mjs +51 -51
  102. package/tests/helpers/is_bool.test.mjs +43 -43
  103. package/tests/helpers/is_boolean.test.mjs +43 -43
  104. package/tests/helpers/is_class.test.mjs +84 -84
  105. package/tests/helpers/is_float.test.mjs +87 -87
  106. package/tests/helpers/is_function.test.mjs +83 -83
  107. package/tests/helpers/is_infinity.test.mjs +46 -46
  108. package/tests/helpers/is_int.test.mjs +45 -45
  109. package/tests/helpers/is_integer.test.mjs +64 -64
  110. package/tests/helpers/is_list.test.mjs +42 -42
  111. package/tests/helpers/is_nan.test.mjs +43 -43
  112. package/tests/helpers/is_null.test.mjs +17 -17
  113. package/tests/helpers/is_number.test.mjs +25 -25
  114. package/tests/helpers/is_numeric.test.mjs +30 -30
  115. package/tests/helpers/is_object.test.mjs +52 -52
  116. package/tests/helpers/is_scalar.test.mjs +21 -21
  117. package/tests/helpers/is_string.test.mjs +20 -20
  118. package/tests/helpers/is_symbol.test.mjs +20 -20
  119. package/tests/helpers/is_undefined.test.mjs +18 -18
  120. package/tests/helpers/print.test.mjs +62 -62
  121. package/tests/helpers/print_type.test.mjs +62 -62
  122. package/tests/helpers/settype.test.mjs +34 -34
  123. package/tests/helpers/to_array.test.mjs +38 -38
  124. package/tests/helpers/to_assoc.test.mjs +33 -33
  125. package/tests/helpers/to_bool.test.mjs +51 -51
  126. package/tests/helpers/to_boolean.test.mjs +51 -51
  127. package/tests/helpers/to_float.test.mjs +26 -26
  128. package/tests/helpers/to_int.test.mjs +48 -48
  129. package/tests/helpers/to_integer.test.mjs +48 -48
  130. package/tests/helpers/to_list.test.mjs +32 -32
  131. package/tests/helpers/to_object.test.mjs +36 -36
  132. package/tests/helpers/to_string.test.mjs +71 -71
  133. package/tests/helpers/value.test.mjs +68 -0
@@ -1,42 +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
- });
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
+ });
@@ -1,51 +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
- });
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
+ });
@@ -1,43 +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
- });
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
+ });
@@ -1,43 +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
- });
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
+ });
@@ -1,84 +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
- });
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
+ });