@rogolev/value 0.0.2 → 0.0.3
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.
- package/CHANGELOG.md +14 -0
- package/README.md +19 -1
- package/docs/classes/Value/constructor.md +48 -0
- package/docs/classes/Value/get.md +51 -0
- package/docs/classes/Value/getType.md +71 -0
- package/docs/classes/Value/isArray.md +67 -0
- package/docs/classes/Value/isAssoc.md +68 -0
- package/docs/classes/Value/isBigInt.md +52 -0
- package/docs/classes/Value/isBool.md +60 -0
- package/docs/classes/Value/isBoolean.md +60 -0
- package/docs/classes/Value/isClass.md +55 -0
- package/docs/classes/Value/isEmpty.md +84 -0
- package/docs/classes/Value/isFloat.md +52 -0
- package/docs/classes/Value/isFunction.md +60 -0
- package/docs/classes/Value/isInfinity.md +60 -0
- package/docs/classes/Value/isInt.md +52 -0
- package/docs/classes/Value/isInteger.md +52 -0
- package/docs/classes/Value/isList.md +59 -0
- package/docs/classes/Value/isNaN.md +79 -0
- package/docs/classes/Value/isNull.md +59 -0
- package/docs/classes/Value/isNumber.md +80 -0
- package/docs/classes/Value/isNumeric.md +79 -0
- package/docs/classes/Value/isObject.md +68 -0
- package/docs/classes/Value/isScalar.md +72 -0
- package/docs/classes/Value/isString.md +67 -0
- package/docs/classes/Value/isSymbol.md +75 -0
- package/docs/classes/Value/isUndefined.md +67 -0
- package/docs/classes/Value/print.md +164 -0
- package/docs/classes/Value/printType.md +158 -0
- package/docs/classes/Value/setType.md +79 -0
- package/docs/classes/Value/toArray.md +85 -0
- package/docs/classes/Value/toAssoc.md +85 -0
- package/docs/classes/Value/toBool.md +71 -0
- package/docs/classes/Value/toBoolean.md +71 -0
- package/docs/classes/Value/toFloat.md +72 -0
- package/docs/classes/Value/toInt.md +72 -0
- package/docs/classes/Value/toInteger.md +72 -0
- package/docs/classes/Value/toList.md +77 -0
- package/docs/classes/Value/toObject.md +78 -0
- package/docs/classes/Value/toPrint.md +115 -0
- package/docs/classes/Value/toPrintType.md +110 -0
- package/docs/classes/Value/toString.md +134 -0
- package/docs/classes/Value.md +113 -0
- package/docs/classes.md +2 -0
- package/docs/constants.md +47 -0
- package/docs/helpers/value.md +95 -0
- package/docs/helpers.md +2 -0
- package/index.mjs +3 -0
- package/package.json +2 -2
- package/src/classes/Convert.mjs +818 -819
- package/src/classes/Type.mjs +1284 -1285
- package/src/classes/Value.mjs +2846 -0
- package/src/constants.mjs +14 -0
- package/src/helpers/array.mjs +107 -107
- package/src/helpers/empty.mjs +70 -70
- package/src/helpers/gettype.mjs +149 -133
- package/src/helpers/is_array.mjs +128 -128
- package/src/helpers/is_assoc.mjs +51 -51
- package/src/helpers/is_bigint.mjs +47 -47
- package/src/helpers/is_bool.mjs +43 -43
- package/src/helpers/is_boolean.mjs +43 -43
- package/src/helpers/is_class.mjs +87 -87
- package/src/helpers/is_float.mjs +67 -67
- package/src/helpers/is_function.mjs +74 -74
- package/src/helpers/is_infinity.mjs +52 -52
- package/src/helpers/is_int.mjs +57 -57
- package/src/helpers/is_integer.mjs +74 -74
- package/src/helpers/is_list.mjs +43 -43
- package/src/helpers/is_nan.mjs +51 -51
- package/src/helpers/is_null.mjs +37 -37
- package/src/helpers/is_number.mjs +49 -49
- package/src/helpers/is_numeric.mjs +64 -64
- package/src/helpers/is_object.mjs +72 -72
- package/src/helpers/is_scalar.mjs +45 -45
- package/src/helpers/is_string.mjs +46 -46
- package/src/helpers/is_symbol.mjs +46 -46
- package/src/helpers/is_undefined.mjs +44 -44
- package/src/helpers/print.mjs +245 -245
- package/src/helpers/print_type.mjs +261 -261
- package/src/helpers/settype.mjs +101 -101
- package/src/helpers/to_array.mjs +118 -118
- package/src/helpers/to_assoc.mjs +98 -98
- package/src/helpers/to_bool.mjs +68 -68
- package/src/helpers/to_boolean.mjs +64 -64
- package/src/helpers/to_float.mjs +72 -72
- package/src/helpers/to_int.mjs +93 -93
- package/src/helpers/to_integer.mjs +81 -81
- package/src/helpers/to_list.mjs +56 -56
- package/src/helpers/to_object.mjs +94 -94
- package/src/helpers/to_string.mjs +157 -157
- package/src/helpers/value.mjs +92 -0
- package/tests/classes/Convert.test.mjs +398 -399
- package/tests/classes/Type.test.mjs +1262 -1263
- package/tests/classes/Value.test.mjs +423 -0
- package/tests/constants.test.mjs +75 -0
- package/tests/helpers/array.test.mjs +58 -58
- package/tests/helpers/empty.test.mjs +22 -22
- package/tests/helpers/gettype.test.mjs +74 -74
- package/tests/helpers/is_array.test.mjs +404 -404
- package/tests/helpers/is_assoc.test.mjs +42 -42
- package/tests/helpers/is_bigint.test.mjs +51 -51
- package/tests/helpers/is_bool.test.mjs +43 -43
- package/tests/helpers/is_boolean.test.mjs +43 -43
- package/tests/helpers/is_class.test.mjs +84 -84
- package/tests/helpers/is_float.test.mjs +87 -87
- package/tests/helpers/is_function.test.mjs +83 -83
- package/tests/helpers/is_infinity.test.mjs +46 -46
- package/tests/helpers/is_int.test.mjs +45 -45
- package/tests/helpers/is_integer.test.mjs +64 -64
- package/tests/helpers/is_list.test.mjs +42 -42
- package/tests/helpers/is_nan.test.mjs +43 -43
- package/tests/helpers/is_null.test.mjs +17 -17
- package/tests/helpers/is_number.test.mjs +25 -25
- package/tests/helpers/is_numeric.test.mjs +30 -30
- package/tests/helpers/is_object.test.mjs +52 -52
- package/tests/helpers/is_scalar.test.mjs +21 -21
- package/tests/helpers/is_string.test.mjs +20 -20
- package/tests/helpers/is_symbol.test.mjs +20 -20
- package/tests/helpers/is_undefined.test.mjs +18 -18
- package/tests/helpers/print.test.mjs +62 -62
- package/tests/helpers/print_type.test.mjs +62 -62
- package/tests/helpers/settype.test.mjs +34 -34
- package/tests/helpers/to_array.test.mjs +38 -38
- package/tests/helpers/to_assoc.test.mjs +33 -33
- package/tests/helpers/to_bool.test.mjs +51 -51
- package/tests/helpers/to_boolean.test.mjs +51 -51
- package/tests/helpers/to_float.test.mjs +26 -26
- package/tests/helpers/to_int.test.mjs +48 -48
- package/tests/helpers/to_integer.test.mjs +48 -48
- package/tests/helpers/to_list.test.mjs +32 -32
- package/tests/helpers/to_object.test.mjs +36 -36
- package/tests/helpers/to_string.test.mjs +71 -71
- package/tests/helpers/value.test.mjs +68 -0
|
@@ -1,399 +1,398 @@
|
|
|
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
|
-
|
|
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
|
+
});
|