@rogolev/value 0.0.1 → 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/.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
|
+
});
|