@rogolev/value 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- package/.prettierignore +4 -4
- package/CHANGELOG.md +82 -56
- package/LICENSE +41 -41
- package/README.md +118 -91
- package/babel.config.json +20 -20
- package/docs/classes/Convert/toArray.md +100 -0
- package/docs/classes/Convert/toAssoc.md +90 -0
- package/docs/classes/Convert/toBool.md +72 -0
- package/docs/classes/Convert/toBoolean.md +72 -0
- package/docs/classes/Convert/toFloat.md +69 -0
- package/docs/classes/Convert/toInt.md +86 -0
- package/docs/classes/Convert/toInteger.md +86 -0
- package/docs/classes/Convert/toList.md +73 -0
- package/docs/classes/Convert/toObject.md +76 -0
- package/docs/classes/Convert/toString.md +125 -0
- package/docs/classes/Convert.md +44 -0
- package/docs/classes/Type/isArray.md +106 -0
- package/docs/classes/Type/isAssoc.md +57 -0
- package/docs/classes/Type/isBigInt.md +49 -0
- package/docs/classes/Type/isBool.md +51 -0
- package/docs/classes/Type/isBoolean.md +51 -0
- package/docs/classes/Type/isClass.md +60 -0
- package/docs/classes/Type/isEmpty.md +53 -0
- package/docs/classes/Type/isFloat.md +77 -0
- package/docs/classes/Type/isFunction.md +64 -0
- package/docs/classes/Type/isInfinity.md +59 -0
- package/docs/classes/Type/isInt.md +77 -0
- package/docs/classes/Type/isInteger.md +77 -0
- package/docs/classes/Type/isList.md +49 -0
- package/docs/classes/Type/isNaN.md +57 -0
- package/docs/classes/Type/isNull.md +49 -0
- package/docs/classes/Type/isNumber.md +60 -0
- package/docs/classes/Type/isNumeric.md +58 -0
- package/docs/classes/Type/isObject.md +53 -0
- package/docs/classes/Type/isScalar.md +54 -0
- package/docs/classes/Type/isString.md +54 -0
- package/docs/classes/Type/isSymbol.md +56 -0
- package/docs/classes/Type/isUndefined.md +52 -0
- package/docs/classes/Type.md +74 -0
- 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 +11 -0
- package/docs/constants.md +47 -0
- package/docs/helpers/array.md +80 -80
- package/docs/helpers/empty.md +77 -77
- package/docs/helpers/gettype.md +69 -69
- package/docs/helpers/is_array.md +105 -105
- package/docs/helpers/is_assoc.md +59 -59
- package/docs/helpers/is_bigint.md +57 -57
- package/docs/helpers/is_bool.md +50 -50
- package/docs/helpers/is_boolean.md +50 -50
- package/docs/helpers/is_class.md +73 -73
- package/docs/helpers/is_float.md +71 -71
- package/docs/helpers/is_function.md +62 -62
- package/docs/helpers/is_infinity.md +61 -61
- package/docs/helpers/is_int.md +81 -81
- package/docs/helpers/is_integer.md +82 -82
- package/docs/helpers/is_list.md +51 -51
- package/docs/helpers/is_nan.md +59 -59
- package/docs/helpers/is_null.md +49 -49
- package/docs/helpers/is_number.md +67 -67
- package/docs/helpers/is_numeric.md +76 -76
- package/docs/helpers/is_object.md +69 -69
- package/docs/helpers/is_scalar.md +60 -60
- package/docs/helpers/is_string.md +58 -58
- package/docs/helpers/is_symbol.md +58 -58
- package/docs/helpers/is_undefined.md +56 -56
- package/docs/helpers/print.md +187 -187
- package/docs/helpers/print_type.md +225 -225
- package/docs/helpers/settype.md +78 -78
- package/docs/helpers/to_array.md +106 -106
- package/docs/helpers/to_assoc.md +91 -91
- package/docs/helpers/to_bool.md +76 -76
- package/docs/helpers/to_boolean.md +77 -77
- package/docs/helpers/to_float.md +70 -70
- package/docs/helpers/to_int.md +87 -87
- package/docs/helpers/to_integer.md +87 -87
- package/docs/helpers/to_list.md +47 -47
- package/docs/helpers/to_object.md +76 -76
- package/docs/helpers/to_string.md +134 -134
- package/docs/helpers/value.md +95 -0
- package/docs/helpers.md +53 -51
- package/docs/types/NaN.md +30 -30
- package/docs/types/array.md +252 -252
- package/docs/types/bigint.md +34 -34
- package/docs/types/boolean.md +47 -47
- package/docs/types/class.md +36 -36
- package/docs/types/float.md +35 -35
- package/docs/types/function.md +121 -121
- package/docs/types/infinity.md +32 -32
- package/docs/types/integer.md +35 -35
- package/docs/types/null.md +23 -23
- package/docs/types/object.md +62 -62
- package/docs/types/string.md +33 -33
- package/docs/types/symbol.md +29 -29
- package/docs/types/undefined.md +25 -25
- package/docs/types.md +44 -44
- package/eslint.config.mjs +1664 -1664
- package/index.mjs +43 -37
- package/jest.config.mjs +31 -31
- package/package.json +48 -47
- package/prettier.config.mjs +224 -224
- package/src/classes/Convert.mjs +818 -0
- package/src/classes/Type.mjs +1284 -0
- package/src/classes/Value.mjs +2846 -0
- package/src/constants.mjs +14 -0
- package/src/helpers/gettype.mjs +30 -14
- package/src/helpers/value.mjs +92 -0
- package/tests/classes/Convert.test.mjs +398 -0
- package/tests/classes/Type.test.mjs +1262 -0
- package/tests/classes/Value.test.mjs +423 -0
- package/tests/constants.test.mjs +75 -0
- package/tests/helpers/value.test.mjs +68 -0
@@ -0,0 +1,14 @@
|
|
1
|
+
export const TYPE_NULL = 'null';
|
2
|
+
export const TYPE_NAN = 'NaN';
|
3
|
+
export const TYPE_UNDEFINED = 'undefined';
|
4
|
+
export const TYPE_INFINITY = 'infinity';
|
5
|
+
export const TYPE_BOOLEAN = 'boolean';
|
6
|
+
export const TYPE_INTEGER = 'integer';
|
7
|
+
export const TYPE_BIGINT = 'bigint';
|
8
|
+
export const TYPE_FLOAT = 'float';
|
9
|
+
export const TYPE_STRING = 'string';
|
10
|
+
export const TYPE_SYMBOL = 'symbol';
|
11
|
+
export const TYPE_CLASS = 'class';
|
12
|
+
export const TYPE_FUNCTION = 'function';
|
13
|
+
export const TYPE_ARRAY = 'array';
|
14
|
+
export const TYPE_OBJECT = 'object';
|
package/src/helpers/gettype.mjs
CHANGED
@@ -12,6 +12,22 @@ import is_bool from './is_bool.mjs';
|
|
12
12
|
import is_string from './is_string.mjs';
|
13
13
|
import is_symbol from './is_symbol.mjs';
|
14
14
|
import is_function from './is_function.mjs';
|
15
|
+
import {
|
16
|
+
TYPE_ARRAY,
|
17
|
+
TYPE_BIGINT,
|
18
|
+
TYPE_BOOLEAN,
|
19
|
+
TYPE_CLASS,
|
20
|
+
TYPE_FLOAT,
|
21
|
+
TYPE_FUNCTION,
|
22
|
+
TYPE_INFINITY,
|
23
|
+
TYPE_INTEGER,
|
24
|
+
TYPE_NAN,
|
25
|
+
TYPE_NULL,
|
26
|
+
TYPE_OBJECT,
|
27
|
+
TYPE_STRING,
|
28
|
+
TYPE_SYMBOL,
|
29
|
+
TYPE_UNDEFINED,
|
30
|
+
} from '../constants.mjs';
|
15
31
|
|
16
32
|
/**
|
17
33
|
* Определяет тип переданного значения.
|
@@ -74,59 +90,59 @@ import is_function from './is_function.mjs';
|
|
74
90
|
*/
|
75
91
|
export default function gettype(value) {
|
76
92
|
if (is_null(value)) {
|
77
|
-
return
|
93
|
+
return TYPE_NULL;
|
78
94
|
}
|
79
95
|
|
80
96
|
if (is_nan(value)) {
|
81
|
-
return
|
97
|
+
return TYPE_NAN;
|
82
98
|
}
|
83
99
|
|
84
100
|
if (is_undefined(value)) {
|
85
|
-
return
|
101
|
+
return TYPE_UNDEFINED;
|
86
102
|
}
|
87
103
|
|
88
104
|
if (is_infinity(value)) {
|
89
|
-
return
|
105
|
+
return TYPE_INFINITY;
|
90
106
|
}
|
91
107
|
|
92
108
|
if (is_bool(value)) {
|
93
|
-
return
|
109
|
+
return TYPE_BOOLEAN;
|
94
110
|
}
|
95
111
|
|
96
112
|
if (is_int(value)) {
|
97
|
-
return
|
113
|
+
return TYPE_INTEGER;
|
98
114
|
}
|
99
115
|
|
100
116
|
if (is_bigint(value)) {
|
101
|
-
return
|
117
|
+
return TYPE_BIGINT;
|
102
118
|
}
|
103
119
|
|
104
120
|
if (is_float(value)) {
|
105
|
-
return
|
121
|
+
return TYPE_FLOAT;
|
106
122
|
}
|
107
123
|
|
108
124
|
if (is_string(value)) {
|
109
|
-
return
|
125
|
+
return TYPE_STRING;
|
110
126
|
}
|
111
127
|
|
112
128
|
if (is_symbol(value)) {
|
113
|
-
return
|
129
|
+
return TYPE_SYMBOL;
|
114
130
|
}
|
115
131
|
|
116
132
|
if (is_class(value)) {
|
117
|
-
return
|
133
|
+
return TYPE_CLASS;
|
118
134
|
}
|
119
135
|
|
120
136
|
if (is_function(value)) {
|
121
|
-
return
|
137
|
+
return TYPE_FUNCTION;
|
122
138
|
}
|
123
139
|
|
124
140
|
if (is_array(value)) {
|
125
|
-
return
|
141
|
+
return TYPE_ARRAY;
|
126
142
|
}
|
127
143
|
|
128
144
|
if (is_object(value)) {
|
129
|
-
return
|
145
|
+
return TYPE_OBJECT;
|
130
146
|
}
|
131
147
|
|
132
148
|
return typeof value;
|
@@ -0,0 +1,92 @@
|
|
1
|
+
import Value from '../classes/Value.mjs';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Создает новый экземпляр класса `Value` с заданным значением.
|
5
|
+
*
|
6
|
+
* ### Описание
|
7
|
+
*
|
8
|
+
* Функция `value` используется для создания нового экземпляра класса `Value` с переданным значением.
|
9
|
+
* Это позволяет легко обернуть значение в экземпляр класса `Value` и использовать методы класса для работы с этим значением.
|
10
|
+
*
|
11
|
+
* ### Параметры
|
12
|
+
*
|
13
|
+
* - `val` (any)
|
14
|
+
* Значение, которое необходимо обернуть в экземпляр класса `Value`.
|
15
|
+
*
|
16
|
+
* ### Возвращаемое значение
|
17
|
+
*
|
18
|
+
* Возвращает новый экземпляр класса `Value` с переданным значением.
|
19
|
+
*
|
20
|
+
* ### Примеры использования
|
21
|
+
*
|
22
|
+
* 1. Создание экземпляра класса `Value` с числом:
|
23
|
+
*
|
24
|
+
* ```js
|
25
|
+
* const valueInstance = value(123);
|
26
|
+
* console.log(valueInstance.get()); // 123
|
27
|
+
* console.log(valueInstance.getType()); // 'integer'
|
28
|
+
* console.log(valueInstance.isNumber()); // true
|
29
|
+
* ```
|
30
|
+
*
|
31
|
+
* 2. Создание экземпляра класса `Value` со строкой:
|
32
|
+
*
|
33
|
+
* ```js
|
34
|
+
* const valueInstance = value('example');
|
35
|
+
* console.log(valueInstance.get()); // 'example'
|
36
|
+
* console.log(valueInstance.getType()); // 'string'
|
37
|
+
* console.log(valueInstance.isString()); // true
|
38
|
+
* ```
|
39
|
+
*
|
40
|
+
* 3. Создание экземпляра класса `Value` с объектом:
|
41
|
+
*
|
42
|
+
* ```js
|
43
|
+
* const obj = { key: 'value' };
|
44
|
+
* const valueInstance = value(obj);
|
45
|
+
* console.log(valueInstance.get()); // { key: 'value' }
|
46
|
+
* console.log(valueInstance.getType()); // 'object'
|
47
|
+
* console.log(valueInstance.isObject()); // true
|
48
|
+
* ```
|
49
|
+
*
|
50
|
+
* 4. Создание экземпляра класса `Value` с массивом:
|
51
|
+
*
|
52
|
+
* ```js
|
53
|
+
* const arr = [1, 2, 3];
|
54
|
+
* const valueInstance = value(arr);
|
55
|
+
* console.log(valueInstance.get()); // [1, 2, 3]
|
56
|
+
* console.log(valueInstance.getType()); // 'array'
|
57
|
+
* console.log(valueInstance.isArray()); // true
|
58
|
+
* ```
|
59
|
+
*
|
60
|
+
* 5. Создание экземпляра класса `Value` с булевым значением:
|
61
|
+
*
|
62
|
+
* ```js
|
63
|
+
* const valueInstance = value(true);
|
64
|
+
* console.log(valueInstance.get()); // true
|
65
|
+
* console.log(valueInstance.getType()); // 'boolean'
|
66
|
+
* console.log(valueInstance.isBool()); // true
|
67
|
+
* ```
|
68
|
+
*
|
69
|
+
* 6. Создание экземпляра класса `Value` с null:
|
70
|
+
*
|
71
|
+
* ```js
|
72
|
+
* const valueInstance = value(null);
|
73
|
+
* console.log(valueInstance.get()); // null
|
74
|
+
* console.log(valueInstance.getType()); // 'null'
|
75
|
+
* console.log(valueInstance.isNull()); // true
|
76
|
+
* ```
|
77
|
+
*
|
78
|
+
* 7. Создание экземпляра класса `Value` с undefined:
|
79
|
+
*
|
80
|
+
* ```js
|
81
|
+
* const valueInstance = value(undefined);
|
82
|
+
* console.log(valueInstance.get()); // undefined
|
83
|
+
* console.log(valueInstance.getType()); // 'undefined'
|
84
|
+
* console.log(valueInstance.isUndefined()); // true
|
85
|
+
* ```
|
86
|
+
*
|
87
|
+
* @param {any} val Значение, которое необходимо обернуть в экземпляр класса `Value`.
|
88
|
+
* @returns {Value} Возвращает новый экземпляр класса `Value` с переданным значением.
|
89
|
+
*/
|
90
|
+
export default function value(val) {
|
91
|
+
return new Value(val);
|
92
|
+
}
|
@@ -0,0 +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
|
+
});
|