@rogolev/value 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (176) hide show
  1. package/.prettierignore +4 -4
  2. package/CHANGELOG.md +68 -56
  3. package/LICENSE +41 -41
  4. package/README.md +100 -91
  5. package/babel.config.json +20 -20
  6. package/docs/classes/Convert/toArray.md +100 -0
  7. package/docs/classes/Convert/toAssoc.md +90 -0
  8. package/docs/classes/Convert/toBool.md +72 -0
  9. package/docs/classes/Convert/toBoolean.md +72 -0
  10. package/docs/classes/Convert/toFloat.md +69 -0
  11. package/docs/classes/Convert/toInt.md +86 -0
  12. package/docs/classes/Convert/toInteger.md +86 -0
  13. package/docs/classes/Convert/toList.md +73 -0
  14. package/docs/classes/Convert/toObject.md +76 -0
  15. package/docs/classes/Convert/toString.md +125 -0
  16. package/docs/classes/Convert.md +44 -0
  17. package/docs/classes/Type/isArray.md +106 -0
  18. package/docs/classes/Type/isAssoc.md +57 -0
  19. package/docs/classes/Type/isBigInt.md +49 -0
  20. package/docs/classes/Type/isBool.md +51 -0
  21. package/docs/classes/Type/isBoolean.md +51 -0
  22. package/docs/classes/Type/isClass.md +60 -0
  23. package/docs/classes/Type/isEmpty.md +53 -0
  24. package/docs/classes/Type/isFloat.md +77 -0
  25. package/docs/classes/Type/isFunction.md +64 -0
  26. package/docs/classes/Type/isInfinity.md +59 -0
  27. package/docs/classes/Type/isInt.md +77 -0
  28. package/docs/classes/Type/isInteger.md +77 -0
  29. package/docs/classes/Type/isList.md +49 -0
  30. package/docs/classes/Type/isNaN.md +57 -0
  31. package/docs/classes/Type/isNull.md +49 -0
  32. package/docs/classes/Type/isNumber.md +60 -0
  33. package/docs/classes/Type/isNumeric.md +58 -0
  34. package/docs/classes/Type/isObject.md +53 -0
  35. package/docs/classes/Type/isScalar.md +54 -0
  36. package/docs/classes/Type/isString.md +54 -0
  37. package/docs/classes/Type/isSymbol.md +56 -0
  38. package/docs/classes/Type/isUndefined.md +52 -0
  39. package/docs/classes/Type.md +74 -0
  40. package/docs/classes.md +9 -0
  41. package/docs/helpers/array.md +80 -80
  42. package/docs/helpers/empty.md +77 -77
  43. package/docs/helpers/gettype.md +69 -69
  44. package/docs/helpers/is_array.md +105 -105
  45. package/docs/helpers/is_assoc.md +59 -59
  46. package/docs/helpers/is_bigint.md +57 -57
  47. package/docs/helpers/is_bool.md +50 -50
  48. package/docs/helpers/is_boolean.md +50 -50
  49. package/docs/helpers/is_class.md +73 -73
  50. package/docs/helpers/is_float.md +71 -71
  51. package/docs/helpers/is_function.md +62 -62
  52. package/docs/helpers/is_infinity.md +61 -61
  53. package/docs/helpers/is_int.md +81 -81
  54. package/docs/helpers/is_integer.md +82 -82
  55. package/docs/helpers/is_list.md +51 -51
  56. package/docs/helpers/is_nan.md +59 -59
  57. package/docs/helpers/is_null.md +49 -49
  58. package/docs/helpers/is_number.md +67 -67
  59. package/docs/helpers/is_numeric.md +76 -76
  60. package/docs/helpers/is_object.md +69 -69
  61. package/docs/helpers/is_scalar.md +60 -60
  62. package/docs/helpers/is_string.md +58 -58
  63. package/docs/helpers/is_symbol.md +58 -58
  64. package/docs/helpers/is_undefined.md +56 -56
  65. package/docs/helpers/print.md +187 -187
  66. package/docs/helpers/print_type.md +225 -225
  67. package/docs/helpers/settype.md +78 -78
  68. package/docs/helpers/to_array.md +106 -106
  69. package/docs/helpers/to_assoc.md +91 -91
  70. package/docs/helpers/to_bool.md +76 -76
  71. package/docs/helpers/to_boolean.md +77 -77
  72. package/docs/helpers/to_float.md +70 -70
  73. package/docs/helpers/to_int.md +87 -87
  74. package/docs/helpers/to_integer.md +87 -87
  75. package/docs/helpers/to_list.md +47 -47
  76. package/docs/helpers/to_object.md +76 -76
  77. package/docs/helpers/to_string.md +134 -134
  78. package/docs/helpers.md +51 -51
  79. package/docs/types/NaN.md +30 -30
  80. package/docs/types/array.md +252 -252
  81. package/docs/types/bigint.md +34 -34
  82. package/docs/types/boolean.md +47 -47
  83. package/docs/types/class.md +36 -36
  84. package/docs/types/float.md +35 -35
  85. package/docs/types/function.md +121 -121
  86. package/docs/types/infinity.md +32 -32
  87. package/docs/types/integer.md +35 -35
  88. package/docs/types/null.md +23 -23
  89. package/docs/types/object.md +62 -62
  90. package/docs/types/string.md +33 -33
  91. package/docs/types/symbol.md +29 -29
  92. package/docs/types/undefined.md +25 -25
  93. package/docs/types.md +44 -44
  94. package/eslint.config.mjs +1664 -1664
  95. package/index.mjs +40 -37
  96. package/jest.config.mjs +31 -31
  97. package/package.json +48 -47
  98. package/prettier.config.mjs +224 -224
  99. package/src/classes/Convert.mjs +819 -0
  100. package/src/classes/Type.mjs +1285 -0
  101. package/src/helpers/array.mjs +107 -107
  102. package/src/helpers/empty.mjs +70 -70
  103. package/src/helpers/gettype.mjs +133 -133
  104. package/src/helpers/is_array.mjs +128 -128
  105. package/src/helpers/is_assoc.mjs +51 -51
  106. package/src/helpers/is_bigint.mjs +47 -47
  107. package/src/helpers/is_bool.mjs +43 -43
  108. package/src/helpers/is_boolean.mjs +43 -43
  109. package/src/helpers/is_class.mjs +87 -87
  110. package/src/helpers/is_float.mjs +67 -67
  111. package/src/helpers/is_function.mjs +74 -74
  112. package/src/helpers/is_infinity.mjs +52 -52
  113. package/src/helpers/is_int.mjs +57 -57
  114. package/src/helpers/is_integer.mjs +74 -74
  115. package/src/helpers/is_list.mjs +43 -43
  116. package/src/helpers/is_nan.mjs +51 -51
  117. package/src/helpers/is_null.mjs +37 -37
  118. package/src/helpers/is_number.mjs +49 -49
  119. package/src/helpers/is_numeric.mjs +64 -64
  120. package/src/helpers/is_object.mjs +72 -72
  121. package/src/helpers/is_scalar.mjs +45 -45
  122. package/src/helpers/is_string.mjs +46 -46
  123. package/src/helpers/is_symbol.mjs +46 -46
  124. package/src/helpers/is_undefined.mjs +44 -44
  125. package/src/helpers/print.mjs +245 -245
  126. package/src/helpers/print_type.mjs +261 -261
  127. package/src/helpers/settype.mjs +101 -101
  128. package/src/helpers/to_array.mjs +118 -118
  129. package/src/helpers/to_assoc.mjs +98 -98
  130. package/src/helpers/to_bool.mjs +68 -68
  131. package/src/helpers/to_boolean.mjs +64 -64
  132. package/src/helpers/to_float.mjs +72 -72
  133. package/src/helpers/to_int.mjs +93 -93
  134. package/src/helpers/to_integer.mjs +81 -81
  135. package/src/helpers/to_list.mjs +56 -56
  136. package/src/helpers/to_object.mjs +94 -94
  137. package/src/helpers/to_string.mjs +157 -157
  138. package/tests/classes/Convert.test.mjs +399 -0
  139. package/tests/classes/Type.test.mjs +1263 -0
  140. package/tests/helpers/array.test.mjs +58 -58
  141. package/tests/helpers/empty.test.mjs +22 -22
  142. package/tests/helpers/gettype.test.mjs +74 -74
  143. package/tests/helpers/is_array.test.mjs +404 -404
  144. package/tests/helpers/is_assoc.test.mjs +42 -42
  145. package/tests/helpers/is_bigint.test.mjs +51 -51
  146. package/tests/helpers/is_bool.test.mjs +43 -43
  147. package/tests/helpers/is_boolean.test.mjs +43 -43
  148. package/tests/helpers/is_class.test.mjs +84 -84
  149. package/tests/helpers/is_float.test.mjs +87 -87
  150. package/tests/helpers/is_function.test.mjs +83 -83
  151. package/tests/helpers/is_infinity.test.mjs +46 -46
  152. package/tests/helpers/is_int.test.mjs +45 -45
  153. package/tests/helpers/is_integer.test.mjs +64 -64
  154. package/tests/helpers/is_list.test.mjs +42 -42
  155. package/tests/helpers/is_nan.test.mjs +43 -43
  156. package/tests/helpers/is_null.test.mjs +17 -17
  157. package/tests/helpers/is_number.test.mjs +25 -25
  158. package/tests/helpers/is_numeric.test.mjs +30 -30
  159. package/tests/helpers/is_object.test.mjs +52 -52
  160. package/tests/helpers/is_scalar.test.mjs +21 -21
  161. package/tests/helpers/is_string.test.mjs +20 -20
  162. package/tests/helpers/is_symbol.test.mjs +20 -20
  163. package/tests/helpers/is_undefined.test.mjs +18 -18
  164. package/tests/helpers/print.test.mjs +62 -62
  165. package/tests/helpers/print_type.test.mjs +62 -62
  166. package/tests/helpers/settype.test.mjs +34 -34
  167. package/tests/helpers/to_array.test.mjs +38 -38
  168. package/tests/helpers/to_assoc.test.mjs +33 -33
  169. package/tests/helpers/to_bool.test.mjs +51 -51
  170. package/tests/helpers/to_boolean.test.mjs +51 -51
  171. package/tests/helpers/to_float.test.mjs +26 -26
  172. package/tests/helpers/to_int.test.mjs +48 -48
  173. package/tests/helpers/to_integer.test.mjs +48 -48
  174. package/tests/helpers/to_list.test.mjs +32 -32
  175. package/tests/helpers/to_object.test.mjs +36 -36
  176. package/tests/helpers/to_string.test.mjs +71 -71
@@ -0,0 +1,399 @@
1
+ import { expect, test, describe } from '@jest/globals';
2
+ import { Convert } from '../../index.mjs';
3
+
4
+ describe('Класс Convert', () => {
5
+ describe('Метод Convert.toArray', () => {
6
+ test('Должен возвращать пустой массив для null и undefined', () => {
7
+ expect(Convert.toArray(null)).toEqual([]);
8
+ expect(Convert.toArray(undefined)).toEqual([]);
9
+ });
10
+
11
+ test('Должен возвращать исходный массив, если он передан', () => {
12
+ const input = [1, 2, 3];
13
+ expect(Convert.toArray(input)).toBe(input);
14
+ });
15
+
16
+ test('Должен возвращать ассоциативный массив без прототипа и с итератором Symbol.iterator при передаче объекта', () => {
17
+ const result = Convert.toArray({ key: 'value' });
18
+
19
+ expect(Object.getPrototypeOf(result)).toBeNull();
20
+
21
+ for (const entry of result) {
22
+ expect(entry).toEqual(['key', 'value']);
23
+ }
24
+ });
25
+
26
+ test('Должен возвращать массив с примитивными значениями', () => {
27
+ expect(Convert.toArray(true)).toEqual([true]);
28
+ expect(Convert.toArray(false)).toEqual([false]);
29
+ expect(Convert.toArray('example')).toEqual(['example']);
30
+ expect(Convert.toArray(123)).toEqual([123]);
31
+ });
32
+
33
+ test('Должен оборачивать экземпляр класса в массив', () => {
34
+ class MyClass {}
35
+
36
+ const instance = new MyClass();
37
+ expect(Convert.toArray(instance)).toEqual([instance]);
38
+ });
39
+ });
40
+
41
+ describe('Метод Convert.toAssoc', () => {
42
+ test('Должен возвращать пустой ассоциативный массив для null и undefined', () => {
43
+ expect(Convert.toAssoc(null)).toEqual({});
44
+ expect(Convert.toAssoc(undefined)).toEqual({});
45
+ });
46
+
47
+ test('Должен преобразовывать список в ассоциативный массив', () => {
48
+ const input = [1, 2, 3];
49
+ expect(Convert.toAssoc(input)).toEqual({ 0: 1, 1: 2, 2: 3 });
50
+ });
51
+
52
+ test('Должен возвращать исходный ассоциативный массив, если он передан', () => {
53
+ const input = { key: 'value' };
54
+ expect(Convert.toAssoc(input)).toBe(input);
55
+ });
56
+
57
+ test('Должен возвращать ассоциативный массив с ключом 0 и переданным значением для примитивов', () => {
58
+ expect(Convert.toAssoc(true)).toEqual({ 0: true });
59
+ expect(Convert.toAssoc(false)).toEqual({ 0: false });
60
+ expect(Convert.toAssoc('example')).toEqual({ 0: 'example' });
61
+ expect(Convert.toAssoc(123)).toEqual({ 0: 123 });
62
+ });
63
+
64
+ test('Должен оборачивать экземпляр класса в ассоциативный массив с ключом 0', () => {
65
+ class MyClass {}
66
+
67
+ const instance = new MyClass();
68
+ expect(Convert.toAssoc(instance)).toEqual({ 0: instance });
69
+ });
70
+ });
71
+
72
+ describe('Метод Convert.toBool', () => {
73
+ test('Должен возвращать false для пустого массива', () => {
74
+ expect(Convert.toBool([])).toBe(false);
75
+ });
76
+
77
+ test('Должен возвращать true для непустого массива', () => {
78
+ expect(Convert.toBool([1, 2, 3])).toBe(true);
79
+ });
80
+
81
+ test('Должен возвращать false для пустого ассоциативного массива', () => {
82
+ expect(Convert.toBool({})).toBe(false);
83
+ });
84
+
85
+ test('Должен возвращать true для непустого ассоциативного массива', () => {
86
+ expect(Convert.toBool({ key: 'value' })).toBe(true);
87
+ });
88
+
89
+ test('Должен возвращать true для строки', () => {
90
+ expect(Convert.toBool('example')).toBe(true);
91
+ });
92
+
93
+ test('Должен возвращать true для числа', () => {
94
+ expect(Convert.toBool(123)).toBe(true);
95
+ });
96
+
97
+ test('Должен возвращать false для null и undefined', () => {
98
+ expect(Convert.toBool(null)).toBe(false);
99
+ expect(Convert.toBool(undefined)).toBe(false);
100
+ });
101
+
102
+ test('Должен возвращать true для булевых значений', () => {
103
+ expect(Convert.toBool(true)).toBe(true);
104
+ expect(Convert.toBool(false)).toBe(false);
105
+ });
106
+
107
+ test('Должен возвращать true для экземпляров класса', () => {
108
+ class MyClass {}
109
+
110
+ const instance = new MyClass();
111
+ expect(Convert.toBool(instance)).toBe(true);
112
+ });
113
+
114
+ test('Должен возвращать true для классов', () => {
115
+ class MyClass {}
116
+
117
+ expect(Convert.toBool(MyClass)).toBe(true);
118
+ });
119
+ });
120
+
121
+ describe('Метод Convert.toBoolean', () => {
122
+ test('Должен возвращать false для пустого массива', () => {
123
+ expect(Convert.toBoolean([])).toBe(false);
124
+ });
125
+
126
+ test('Должен возвращать true для непустого массива', () => {
127
+ expect(Convert.toBoolean([1, 2, 3])).toBe(true);
128
+ });
129
+
130
+ test('Должен возвращать false для пустого ассоциативного массива', () => {
131
+ expect(Convert.toBoolean({})).toBe(false);
132
+ });
133
+
134
+ test('Должен возвращать true для непустого ассоциативного массива', () => {
135
+ expect(Convert.toBoolean({ key: 'value' })).toBe(true);
136
+ });
137
+
138
+ test('Должен возвращать true для строки', () => {
139
+ expect(Convert.toBoolean('example')).toBe(true);
140
+ });
141
+
142
+ test('Должен возвращать true для числа', () => {
143
+ expect(Convert.toBoolean(123)).toBe(true);
144
+ });
145
+
146
+ test('Должен возвращать false для null и undefined', () => {
147
+ expect(Convert.toBoolean(null)).toBe(false);
148
+ expect(Convert.toBoolean(undefined)).toBe(false);
149
+ });
150
+
151
+ test('Должен возвращать true для булевых значений', () => {
152
+ expect(Convert.toBoolean(true)).toBe(true);
153
+ expect(Convert.toBoolean(false)).toBe(false);
154
+ });
155
+
156
+ test('Должен возвращать true для экземпляров класса', () => {
157
+ class MyClass {}
158
+
159
+ const instance = new MyClass();
160
+ expect(Convert.toBoolean(instance)).toBe(true);
161
+ });
162
+
163
+ test('Должен возвращать true для классов', () => {
164
+ class MyClass {}
165
+
166
+ expect(Convert.toBoolean(MyClass)).toBe(true);
167
+ });
168
+ });
169
+
170
+ describe('Метод Convert.toFloat', () => {
171
+ test('Должен возвращать число с плавающей точкой для строки', () => {
172
+ expect(Convert.toFloat('123.45')).toBe(123.45);
173
+ });
174
+
175
+ test('Должен возвращать число с плавающей точкой для целого числа', () => {
176
+ expect(Convert.toFloat(123)).toBe(123.0);
177
+ });
178
+
179
+ test('Должен возвращать 1 для true и 0 для false', () => {
180
+ expect(Convert.toFloat(true)).toBe(1.0);
181
+ expect(Convert.toFloat(false)).toBe(0.0);
182
+ });
183
+
184
+ test('Должен возвращать 0 для null и undefined', () => {
185
+ expect(Convert.toFloat(null)).toBe(0.0);
186
+ expect(Convert.toFloat(undefined)).toBe(0.0);
187
+ });
188
+
189
+ test('Должен возвращать 0 для нечисловых строк', () => {
190
+ expect(Convert.toFloat('example')).toBe(0.0);
191
+ });
192
+ });
193
+
194
+ describe('Метод Convert.toInt', () => {
195
+ test('Должен возвращать целое число для строки', () => {
196
+ expect(Convert.toInt('123')).toBe(123);
197
+ });
198
+
199
+ test('Должен возвращать целое число для числа с плавающей точкой', () => {
200
+ expect(Convert.toInt(123.45)).toBe(123);
201
+ });
202
+
203
+ test('Должен возвращать 1 для true и 0 для false', () => {
204
+ expect(Convert.toInt(true)).toBe(1);
205
+ expect(Convert.toInt(false)).toBe(0);
206
+ });
207
+
208
+ test('Должен возвращать 0 для null и undefined', () => {
209
+ expect(Convert.toInt(null)).toBe(0);
210
+ expect(Convert.toInt(undefined)).toBe(0);
211
+ });
212
+
213
+ test('Должен возвращать 0 для нечисловых строк', () => {
214
+ expect(Convert.toInt('example')).toBe(0);
215
+ });
216
+
217
+ test('Должен возвращать целое число для строки с основанием системы счисления', () => {
218
+ expect(Convert.toInt('10', 2)).toBe(2);
219
+ expect(Convert.toInt('A', 16)).toBe(10);
220
+ expect(Convert.toInt('7', 8)).toBe(7);
221
+ });
222
+
223
+ test('Должен возвращать целое число для строки с основанием системы счисления 2', () => {
224
+ expect(Convert.toInt('1010', 2)).toBe(10);
225
+ });
226
+
227
+ test('Должен возвращать целое число для строки с основанием системы счисления 16', () => {
228
+ expect(Convert.toInt('A', 16)).toBe(10);
229
+ });
230
+
231
+ test('Должен возвращать целое число для строки с основанием системы счисления 8', () => {
232
+ expect(Convert.toInt('7', 8)).toBe(7);
233
+ });
234
+
235
+ test('Должен выбрасывать исключение для неверного значения параметра base', () => {
236
+ expect(() => Convert.toInt('123', 'invalid')).toThrow(TypeError);
237
+ });
238
+ });
239
+
240
+ describe('Метод Convert.toInteger', () => {
241
+ test('Должен возвращать целое число для строки', () => {
242
+ expect(Convert.toInteger('123')).toBe(123);
243
+ });
244
+
245
+ test('Должен возвращать целое число для числа с плавающей точкой', () => {
246
+ expect(Convert.toInteger(123.45)).toBe(123);
247
+ });
248
+
249
+ test('Должен возвращать 1 для true и 0 для false', () => {
250
+ expect(Convert.toInteger(true)).toBe(1);
251
+ expect(Convert.toInteger(false)).toBe(0);
252
+ });
253
+
254
+ test('Должен возвращать 0 для null и undefined', () => {
255
+ expect(Convert.toInteger(null)).toBe(0);
256
+ expect(Convert.toInteger(undefined)).toBe(0);
257
+ });
258
+
259
+ test('Должен возвращать 0 для нечисловых строк', () => {
260
+ expect(Convert.toInteger('example')).toBe(0);
261
+ });
262
+
263
+ test('Должен возвращать целое число для строки с основанием системы счисления', () => {
264
+ expect(Convert.toInteger('10', 2)).toBe(2);
265
+ expect(Convert.toInteger('A', 16)).toBe(10);
266
+ expect(Convert.toInteger('7', 8)).toBe(7);
267
+ });
268
+
269
+ test('Должен возвращать целое число для строки с основанием системы счисления 2', () => {
270
+ expect(Convert.toInteger('1010', 2)).toBe(10);
271
+ });
272
+
273
+ test('Должен возвращать целое число для строки с основанием системы счисления 16', () => {
274
+ expect(Convert.toInteger('A', 16)).toBe(10);
275
+ });
276
+
277
+ test('Должен возвращать целое число для строки с основанием системы счисления 8', () => {
278
+ expect(Convert.toInteger('7', 8)).toBe(7);
279
+ });
280
+
281
+ test('Должен выбрасывать исключение для неверного значения параметра base', () => {
282
+ expect(() => Convert.toInteger('123', 'invalid')).toThrow(TypeError);
283
+ });
284
+ });
285
+
286
+ describe('Метод Convert.toList', () => {
287
+ test('Должен возвращать пустой массив для null и undefined', () => {
288
+ expect(Convert.toList(null)).toEqual([]);
289
+ expect(Convert.toList(undefined)).toEqual([]);
290
+ });
291
+
292
+ test('Должен возвращать исходный массив, если он передан', () => {
293
+ const input = [1, 2, 3];
294
+ expect(Convert.toList(input)).toBe(input);
295
+ });
296
+
297
+ test('Должен возвращать массив значений объекта, если передан ассоциативный массив', () => {
298
+ const input = { key: 'value' };
299
+ expect(Convert.toList(input)).toEqual(['value']);
300
+ });
301
+
302
+ test('Должен возвращать массив, содержащий переданное значение для примитивов', () => {
303
+ expect(Convert.toList(true)).toEqual([true]);
304
+ expect(Convert.toList(false)).toEqual([false]);
305
+ expect(Convert.toList('example')).toEqual(['example']);
306
+ expect(Convert.toList(123)).toEqual([123]);
307
+ });
308
+ });
309
+
310
+ describe('Метод Convert.toObject', () => {
311
+ test('Должен возвращать объект без изменений', () => {
312
+ class MyClass {}
313
+ const obj = new MyClass();
314
+ expect(Convert.toObject(obj)).toBe(obj);
315
+ });
316
+
317
+ test('Должен возвращать новый экземпляр класса', () => {
318
+ class MyClass {}
319
+ const instance = Convert.toObject(MyClass);
320
+ expect(instance).toBeInstanceOf(MyClass);
321
+ });
322
+
323
+ test('Должен возвращать объект с элементами массива', () => {
324
+ const arr = [1, 2, 3];
325
+ const result = Convert.toObject(arr);
326
+ expect(result).toEqual({ 0: 1, 1: 2, 2: 3 });
327
+ });
328
+
329
+ test('Должен возвращать объект с полем value для примитивов', () => {
330
+ expect(Convert.toObject('example')).toEqual({ value: 'example' });
331
+ expect(Convert.toObject(123)).toEqual({ value: 123 });
332
+ expect(Convert.toObject(true)).toEqual({ value: true });
333
+ });
334
+
335
+ test('Должен возвращать экземпляр анонимного класса для null и undefined', () => {
336
+ expect(Convert.toObject(null)).toBeInstanceOf(Object);
337
+ expect(Convert.toObject(undefined)).toBeInstanceOf(Object);
338
+ });
339
+ });
340
+
341
+ describe('Метод Convert.toString', () => {
342
+ test('Должен возвращать строку без изменений', () => {
343
+ expect(Convert.toString('example')).toBe('example');
344
+ });
345
+
346
+ test('Должен преобразовывать число в строку', () => {
347
+ expect(Convert.toString(123)).toBe('123');
348
+ });
349
+
350
+ test('Должен преобразовывать булевые значения в строку', () => {
351
+ expect(Convert.toString(true)).toBe('true');
352
+ expect(Convert.toString(false)).toBe('false');
353
+ });
354
+
355
+ test('Должен преобразовывать null и undefined в строку', () => {
356
+ expect(Convert.toString(null)).toBe('null');
357
+ expect(Convert.toString(undefined)).toBe('undefined');
358
+ });
359
+
360
+ test('Должен преобразовывать массив в строку', () => {
361
+ const arr = [1, 2, 3];
362
+ expect(Convert.toString(arr)).toBe('[\n 1,\n 2,\n 3,\n]');
363
+ });
364
+
365
+ test('Должен преобразовывать объект в строку', () => {
366
+ const obj = { key: 'value' };
367
+ expect(Convert.toString(obj)).toBe("{\n key: 'value',\n}");
368
+ });
369
+
370
+ test('Должен преобразовывать функцию в строку', () => {
371
+ const func = function () {};
372
+ expect(Convert.toString(func)).toBe('function func() {}');
373
+ });
374
+
375
+ test('Должен преобразовывать символ в строку', () => {
376
+ const symbol = Symbol('example');
377
+ expect(Convert.toString(symbol)).toBe('Symbol(example)');
378
+ });
379
+
380
+ test('Должен преобразовывать BigInt в строку', () => {
381
+ const bigInt = BigInt(123);
382
+ expect(Convert.toString(bigInt)).toBe('123');
383
+ });
384
+
385
+ test('Должен преобразовывать класс в строку', () => {
386
+ class MyClass {
387
+ static test = 'test';
388
+ }
389
+ expect(Convert.toString(MyClass)).toBe('class MyClass {}');
390
+ });
391
+
392
+ test('Должен преобразовывать экземпляр класса в строку', () => {
393
+ class MyClass {}
394
+ const instance = new MyClass();
395
+ expect(Convert.toString(instance)).toBe('object MyClass');
396
+ });
397
+ });
398
+ });
399
+