@rogolev/value 0.0.1
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 -0
- package/CHANGELOG.md +56 -0
- package/LICENSE +41 -0
- package/README.md +91 -0
- package/babel.config.json +20 -0
- package/docs/helpers/array.md +80 -0
- package/docs/helpers/empty.md +77 -0
- package/docs/helpers/gettype.md +69 -0
- package/docs/helpers/is_array.md +105 -0
- package/docs/helpers/is_assoc.md +59 -0
- package/docs/helpers/is_bigint.md +57 -0
- package/docs/helpers/is_bool.md +50 -0
- package/docs/helpers/is_boolean.md +50 -0
- package/docs/helpers/is_class.md +73 -0
- package/docs/helpers/is_float.md +71 -0
- package/docs/helpers/is_function.md +62 -0
- package/docs/helpers/is_infinity.md +61 -0
- package/docs/helpers/is_int.md +81 -0
- package/docs/helpers/is_integer.md +82 -0
- package/docs/helpers/is_list.md +51 -0
- package/docs/helpers/is_nan.md +59 -0
- package/docs/helpers/is_null.md +49 -0
- package/docs/helpers/is_number.md +67 -0
- package/docs/helpers/is_numeric.md +76 -0
- package/docs/helpers/is_object.md +69 -0
- package/docs/helpers/is_scalar.md +60 -0
- package/docs/helpers/is_string.md +58 -0
- package/docs/helpers/is_symbol.md +58 -0
- package/docs/helpers/is_undefined.md +56 -0
- package/docs/helpers/print.md +187 -0
- package/docs/helpers/print_type.md +225 -0
- package/docs/helpers/settype.md +78 -0
- package/docs/helpers/to_array.md +106 -0
- package/docs/helpers/to_assoc.md +91 -0
- package/docs/helpers/to_bool.md +76 -0
- package/docs/helpers/to_boolean.md +77 -0
- package/docs/helpers/to_float.md +70 -0
- package/docs/helpers/to_int.md +87 -0
- package/docs/helpers/to_integer.md +87 -0
- package/docs/helpers/to_list.md +47 -0
- package/docs/helpers/to_object.md +76 -0
- package/docs/helpers/to_string.md +134 -0
- package/docs/helpers.md +51 -0
- package/docs/types/NaN.md +30 -0
- package/docs/types/array.md +252 -0
- package/docs/types/bigint.md +34 -0
- package/docs/types/boolean.md +47 -0
- package/docs/types/class.md +36 -0
- package/docs/types/float.md +35 -0
- package/docs/types/function.md +121 -0
- package/docs/types/infinity.md +32 -0
- package/docs/types/integer.md +35 -0
- package/docs/types/null.md +23 -0
- package/docs/types/object.md +62 -0
- package/docs/types/string.md +33 -0
- package/docs/types/symbol.md +29 -0
- package/docs/types/undefined.md +25 -0
- package/docs/types.md +44 -0
- package/eslint.config.mjs +1664 -0
- package/index.mjs +37 -0
- package/jest.config.mjs +31 -0
- package/package.json +47 -0
- package/prettier.config.mjs +224 -0
- package/src/helpers/array.mjs +107 -0
- package/src/helpers/empty.mjs +70 -0
- package/src/helpers/gettype.mjs +133 -0
- package/src/helpers/is_array.mjs +128 -0
- package/src/helpers/is_assoc.mjs +51 -0
- package/src/helpers/is_bigint.mjs +47 -0
- package/src/helpers/is_bool.mjs +43 -0
- package/src/helpers/is_boolean.mjs +43 -0
- package/src/helpers/is_class.mjs +87 -0
- package/src/helpers/is_float.mjs +67 -0
- package/src/helpers/is_function.mjs +74 -0
- package/src/helpers/is_infinity.mjs +52 -0
- package/src/helpers/is_int.mjs +57 -0
- package/src/helpers/is_integer.mjs +74 -0
- package/src/helpers/is_list.mjs +43 -0
- package/src/helpers/is_nan.mjs +51 -0
- package/src/helpers/is_null.mjs +37 -0
- package/src/helpers/is_number.mjs +49 -0
- package/src/helpers/is_numeric.mjs +64 -0
- package/src/helpers/is_object.mjs +72 -0
- package/src/helpers/is_scalar.mjs +45 -0
- package/src/helpers/is_string.mjs +46 -0
- package/src/helpers/is_symbol.mjs +46 -0
- package/src/helpers/is_undefined.mjs +44 -0
- package/src/helpers/print.mjs +245 -0
- package/src/helpers/print_type.mjs +261 -0
- package/src/helpers/settype.mjs +101 -0
- package/src/helpers/to_array.mjs +118 -0
- package/src/helpers/to_assoc.mjs +98 -0
- package/src/helpers/to_bool.mjs +68 -0
- package/src/helpers/to_boolean.mjs +64 -0
- package/src/helpers/to_float.mjs +72 -0
- package/src/helpers/to_int.mjs +93 -0
- package/src/helpers/to_integer.mjs +81 -0
- package/src/helpers/to_list.mjs +56 -0
- package/src/helpers/to_object.mjs +94 -0
- package/src/helpers/to_string.mjs +157 -0
- package/tests/helpers/array.test.mjs +58 -0
- package/tests/helpers/empty.test.mjs +22 -0
- package/tests/helpers/gettype.test.mjs +74 -0
- package/tests/helpers/is_array.test.mjs +404 -0
- package/tests/helpers/is_assoc.test.mjs +42 -0
- package/tests/helpers/is_bigint.test.mjs +51 -0
- package/tests/helpers/is_bool.test.mjs +43 -0
- package/tests/helpers/is_boolean.test.mjs +43 -0
- package/tests/helpers/is_class.test.mjs +84 -0
- package/tests/helpers/is_float.test.mjs +87 -0
- package/tests/helpers/is_function.test.mjs +83 -0
- package/tests/helpers/is_infinity.test.mjs +46 -0
- package/tests/helpers/is_int.test.mjs +45 -0
- package/tests/helpers/is_integer.test.mjs +64 -0
- package/tests/helpers/is_list.test.mjs +42 -0
- package/tests/helpers/is_nan.test.mjs +43 -0
- package/tests/helpers/is_null.test.mjs +17 -0
- package/tests/helpers/is_number.test.mjs +25 -0
- package/tests/helpers/is_numeric.test.mjs +30 -0
- package/tests/helpers/is_object.test.mjs +52 -0
- package/tests/helpers/is_scalar.test.mjs +21 -0
- package/tests/helpers/is_string.test.mjs +20 -0
- package/tests/helpers/is_symbol.test.mjs +20 -0
- package/tests/helpers/is_undefined.test.mjs +18 -0
- package/tests/helpers/print.test.mjs +62 -0
- package/tests/helpers/print_type.test.mjs +62 -0
- package/tests/helpers/settype.test.mjs +34 -0
- package/tests/helpers/to_array.test.mjs +38 -0
- package/tests/helpers/to_assoc.test.mjs +33 -0
- package/tests/helpers/to_bool.test.mjs +51 -0
- package/tests/helpers/to_boolean.test.mjs +51 -0
- package/tests/helpers/to_float.test.mjs +26 -0
- package/tests/helpers/to_int.test.mjs +48 -0
- package/tests/helpers/to_integer.test.mjs +48 -0
- package/tests/helpers/to_list.test.mjs +32 -0
- package/tests/helpers/to_object.test.mjs +36 -0
- package/tests/helpers/to_string.test.mjs +71 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { print } from '../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция print', () => {
|
|
5
|
+
test('Должна возвращать строку для строки', () => {
|
|
6
|
+
expect(print('example', true)).toBe('"example"');
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
test('Должна возвращать строку для числа', () => {
|
|
10
|
+
expect(print(123, true)).toBe('123');
|
|
11
|
+
expect(print(123.45, true)).toBe('123.45');
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
test('Должна возвращать строку для булевых значений', () => {
|
|
15
|
+
expect(print(true, true)).toBe('true');
|
|
16
|
+
expect(print(false, true)).toBe('false');
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
test('Должна возвращать строку для null и undefined', () => {
|
|
20
|
+
expect(print(null, true)).toBe('null');
|
|
21
|
+
expect(print(undefined, true)).toBe('undefined');
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
test('Должна возвращать строку для массивов', () => {
|
|
25
|
+
const arr = [1, [2], 3];
|
|
26
|
+
expect(print(arr, true)).toBe(
|
|
27
|
+
'[\n 0: 1,\n 1: [\n 0: 2,\n ],\n 2: 3,\n]',
|
|
28
|
+
);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
test('Должна возвращать строку для ассоциативных массивов', () => {
|
|
32
|
+
const obj = { key: 'value' };
|
|
33
|
+
expect(print(obj, true)).toBe('{\n key: "value",\n}');
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test('Должна возвращать строку для функций', () => {
|
|
37
|
+
const func = function () {};
|
|
38
|
+
expect(print(func, true)).toBe('function func() {}');
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
test('Должна возвращать строку для символов', () => {
|
|
42
|
+
const symbol = Symbol('example');
|
|
43
|
+
expect(print(symbol, true)).toBe('Symbol(example)');
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
test('Должна возвращать строку для классов', () => {
|
|
47
|
+
class MyClass {
|
|
48
|
+
static test = 'test';
|
|
49
|
+
}
|
|
50
|
+
expect(print(MyClass, true)).toBe('class MyClass {\n test = "test";\n}');
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
test('Должна возвращать строку для экземпляров классов', () => {
|
|
54
|
+
class MyClass {}
|
|
55
|
+
const instance = new MyClass();
|
|
56
|
+
expect(print(instance, true)).toBe('object MyClass {}');
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
test('Должна выбрасывать исключение для неверного значения параметра return_result', () => {
|
|
60
|
+
expect(() => print('example', 'invalid')).toThrow(TypeError);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { print_type } from '../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция print_type', () => {
|
|
5
|
+
test('Должна возвращать строку для строки', () => {
|
|
6
|
+
expect(print_type('example', true)).toBe('string(7) "example"');
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
test('Должна возвращать строку для числа', () => {
|
|
10
|
+
expect(print_type(123, true)).toBe('int(123)');
|
|
11
|
+
expect(print_type(123.45, true)).toBe('float(123.45)');
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
test('Должна возвращать строку для булевых значений', () => {
|
|
15
|
+
expect(print_type(true, true)).toBe('bool(true)');
|
|
16
|
+
expect(print_type(false, true)).toBe('bool(false)');
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
test('Должна возвращать строку для null и undefined', () => {
|
|
20
|
+
expect(print_type(null, true)).toBe('null');
|
|
21
|
+
expect(print_type(undefined, true)).toBe('undefined');
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
test('Должна возвращать строку для массивов', () => {
|
|
25
|
+
const arr = [1, [2], 3];
|
|
26
|
+
expect(print_type(arr, true)).toBe(
|
|
27
|
+
'array(3) [\n 0: int(1),\n 1: array(1) [\n 0: int(2),\n ],\n 2: int(3),\n]',
|
|
28
|
+
);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
test('Должна возвращать строку для ассоциативных массивов', () => {
|
|
32
|
+
const obj = { key: 'value' };
|
|
33
|
+
expect(print_type(obj, true)).toBe('array(1) {\n key: string(5) "value",\n}');
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test('Должна возвращать строку для функций', () => {
|
|
37
|
+
const func = function () {};
|
|
38
|
+
expect(print_type(func, true)).toBe('function func() {}');
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
test('Должна возвращать строку для символов', () => {
|
|
42
|
+
const symbol = Symbol('example');
|
|
43
|
+
expect(print_type(symbol, true)).toBe('Symbol(example)');
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
test('Должна возвращать строку для классов', () => {
|
|
47
|
+
class MyClass {
|
|
48
|
+
static test = 'test';
|
|
49
|
+
}
|
|
50
|
+
expect(print_type(MyClass, true)).toBe('class MyClass {\n test = string(4) "test";\n}');
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
test('Должна возвращать строку для экземпляров классов', () => {
|
|
54
|
+
class MyClass {
|
|
55
|
+
test = 'test';
|
|
56
|
+
}
|
|
57
|
+
const instance = new MyClass();
|
|
58
|
+
expect(print_type(instance, true)).toBe(
|
|
59
|
+
'object(MyClass) (1) {\n test = string(4) "test";\n}',
|
|
60
|
+
);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { settype } from '../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция settype', () => {
|
|
5
|
+
test('Должна возвращать булевое значение', () => {
|
|
6
|
+
expect(settype('string', 'boolean')).toBe(true);
|
|
7
|
+
expect(settype('', 'boolean')).toBe(false);
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
test('Должна возвращать целое число', () => {
|
|
11
|
+
expect(settype('123', 'integer')).toBe(123);
|
|
12
|
+
expect(settype('123', 'int')).toBe(123);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
test('Должна возвращать число с плавающей точкой', () => {
|
|
16
|
+
expect(settype('123.45', 'float')).toBe(123.45);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
test('Должна возвращать строку', () => {
|
|
20
|
+
expect(settype(123, 'string')).toBe('123');
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test('Должна возвращать массив', () => {
|
|
24
|
+
expect(settype('example', 'array')).toEqual(['example']);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
test('Должна возвращать объект', () => {
|
|
28
|
+
expect(settype('example', 'object')).toEqual({ value: 'example' });
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
test('Должна возвращать исходное значение для неизвестного типа', () => {
|
|
32
|
+
expect(settype('example', 'unknown')).toBe('example');
|
|
33
|
+
});
|
|
34
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { to_array } from '../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция to_array', () => {
|
|
5
|
+
test('Должна возвращать пустой массив для null и undefined', () => {
|
|
6
|
+
expect(to_array(null)).toEqual([]);
|
|
7
|
+
expect(to_array(undefined)).toEqual([]);
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
test('Должна возвращать исходный массив, если он передан', () => {
|
|
11
|
+
const input = [1, 2, 3];
|
|
12
|
+
expect(to_array(input)).toBe(input);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
test('Должна возвращать ассоциативный массив без прототипа и с итератором Symbol.iterator при передаче объекта', () => {
|
|
16
|
+
const result = to_array({ key: 'value' });
|
|
17
|
+
|
|
18
|
+
expect(Object.getPrototypeOf(result)).toBeNull();
|
|
19
|
+
|
|
20
|
+
for (const entry of result) {
|
|
21
|
+
expect(entry).toEqual(['key', 'value']);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test('Должна возвращать массив с примитивными значениями', () => {
|
|
26
|
+
expect(to_array(true)).toEqual([true]);
|
|
27
|
+
expect(to_array(false)).toEqual([false]);
|
|
28
|
+
expect(to_array('example')).toEqual(['example']);
|
|
29
|
+
expect(to_array(123)).toEqual([123]);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
test('Должна оборачивать экземпляр класса в массив', () => {
|
|
33
|
+
class MyClass {}
|
|
34
|
+
|
|
35
|
+
const instance = new MyClass();
|
|
36
|
+
expect(to_array(instance)).toEqual([instance]);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { to_assoc } from '../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция to_assoc', () => {
|
|
5
|
+
test('Должна возвращать пустой ассоциативный массив для null и undefined', () => {
|
|
6
|
+
expect(to_assoc(null)).toEqual({});
|
|
7
|
+
expect(to_assoc(undefined)).toEqual({});
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
test('Должна преобразовывать список в ассоциативный массив', () => {
|
|
11
|
+
const input = [1, 2, 3];
|
|
12
|
+
expect(to_assoc(input)).toEqual({ 0: 1, 1: 2, 2: 3 });
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
test('Должна возвращать исходный ассоциативный массив, если он передан', () => {
|
|
16
|
+
const input = { key: 'value' };
|
|
17
|
+
expect(to_assoc(input)).toBe(input);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
test('Должна возвращать ассоциативный массив с ключом 0 и переданным значением для примитивов', () => {
|
|
21
|
+
expect(to_assoc(true)).toEqual({ 0: true });
|
|
22
|
+
expect(to_assoc(false)).toEqual({ 0: false });
|
|
23
|
+
expect(to_assoc('example')).toEqual({ 0: 'example' });
|
|
24
|
+
expect(to_assoc(123)).toEqual({ 0: 123 });
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
test('Должна оборачивать экземпляр класса в ассоциативный массив с ключом 0', () => {
|
|
28
|
+
class MyClass {}
|
|
29
|
+
|
|
30
|
+
const instance = new MyClass();
|
|
31
|
+
expect(to_assoc(instance)).toEqual({ 0: instance });
|
|
32
|
+
});
|
|
33
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { to_bool } from '../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция to_bool', () => {
|
|
5
|
+
test('Должна возвращать false для пустого массива', () => {
|
|
6
|
+
expect(to_bool([])).toBe(false);
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
test('Должна возвращать true для непустого массива', () => {
|
|
10
|
+
expect(to_bool([1, 2, 3])).toBe(true);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
test('Должна возвращать false для пустого ассоциативного массива', () => {
|
|
14
|
+
expect(to_bool({})).toBe(false);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test('Должна возвращать true для непустого ассоциативного массива', () => {
|
|
18
|
+
expect(to_bool({ key: 'value' })).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
test('Должна возвращать true для строки', () => {
|
|
22
|
+
expect(to_bool('example')).toBe(true);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test('Должна возвращать true для числа', () => {
|
|
26
|
+
expect(to_bool(123)).toBe(true);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
test('Должна возвращать false для null и undefined', () => {
|
|
30
|
+
expect(to_bool(null)).toBe(false);
|
|
31
|
+
expect(to_bool(undefined)).toBe(false);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
test('Должна возвращать true для булевых значений', () => {
|
|
35
|
+
expect(to_bool(true)).toBe(true);
|
|
36
|
+
expect(to_bool(false)).toBe(false);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
test('Должна возвращать true для экземпляров класса', () => {
|
|
40
|
+
class MyClass {}
|
|
41
|
+
|
|
42
|
+
const instance = new MyClass();
|
|
43
|
+
expect(to_bool(instance)).toBe(true);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
test('Должна возвращать true для классов', () => {
|
|
47
|
+
class MyClass {}
|
|
48
|
+
|
|
49
|
+
expect(to_bool(MyClass)).toBe(true);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { to_boolean } from '../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция to_boolean', () => {
|
|
5
|
+
test('Должна возвращать false для пустого массива', () => {
|
|
6
|
+
expect(to_boolean([])).toBe(false);
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
test('Должна возвращать true для непустого массива', () => {
|
|
10
|
+
expect(to_boolean([1, 2, 3])).toBe(true);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
test('Должна возвращать false для пустого ассоциативного массива', () => {
|
|
14
|
+
expect(to_boolean({})).toBe(false);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test('Должна возвращать true для непустого ассоциативного массива', () => {
|
|
18
|
+
expect(to_boolean({ key: 'value' })).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
test('Должна возвращать true для строки', () => {
|
|
22
|
+
expect(to_boolean('example')).toBe(true);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test('Должна возвращать true для числа', () => {
|
|
26
|
+
expect(to_boolean(123)).toBe(true);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
test('Должна возвращать false для null и undefined', () => {
|
|
30
|
+
expect(to_boolean(null)).toBe(false);
|
|
31
|
+
expect(to_boolean(undefined)).toBe(false);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
test('Должна возвращать true для булевых значений', () => {
|
|
35
|
+
expect(to_boolean(true)).toBe(true);
|
|
36
|
+
expect(to_boolean(false)).toBe(false);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
test('Должна возвращать true для экземпляров класса', () => {
|
|
40
|
+
class MyClass {}
|
|
41
|
+
|
|
42
|
+
const instance = new MyClass();
|
|
43
|
+
expect(to_boolean(instance)).toBe(true);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
test('Должна возвращать true для классов', () => {
|
|
47
|
+
class MyClass {}
|
|
48
|
+
|
|
49
|
+
expect(to_boolean(MyClass)).toBe(true);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { to_float } from '../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция to_float', () => {
|
|
5
|
+
test('Должна возвращать число с плавающей точкой для строки', () => {
|
|
6
|
+
expect(to_float('123.45')).toBe(123.45);
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
test('Должна возвращать число с плавающей точкой для целого числа', () => {
|
|
10
|
+
expect(to_float(123)).toBe(123.0);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
test('Должна возвращать 1 для true и 0 для false', () => {
|
|
14
|
+
expect(to_float(true)).toBe(1.0);
|
|
15
|
+
expect(to_float(false)).toBe(0.0);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
test('Должна возвращать 0 для null и undefined', () => {
|
|
19
|
+
expect(to_float(null)).toBe(0.0);
|
|
20
|
+
expect(to_float(undefined)).toBe(0.0);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test('Должна возвращать 0 для нечисловых строк', () => {
|
|
24
|
+
expect(to_float('example')).toBe(0.0);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { to_int } from '../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция to_int', () => {
|
|
5
|
+
test('Должна возвращать целое число для строки', () => {
|
|
6
|
+
expect(to_int('123')).toBe(123);
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
test('Должна возвращать целое число для числа с плавающей точкой', () => {
|
|
10
|
+
expect(to_int(123.45)).toBe(123);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
test('Должна возвращать 1 для true и 0 для false', () => {
|
|
14
|
+
expect(to_int(true)).toBe(1);
|
|
15
|
+
expect(to_int(false)).toBe(0);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
test('Должна возвращать 0 для null и undefined', () => {
|
|
19
|
+
expect(to_int(null)).toBe(0);
|
|
20
|
+
expect(to_int(undefined)).toBe(0);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test('Должна возвращать 0 для нечисловых строк', () => {
|
|
24
|
+
expect(to_int('example')).toBe(0);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
test('Должна возвращать целое число для строки с основанием системы счисления', () => {
|
|
28
|
+
expect(to_int('10', 2)).toBe(2);
|
|
29
|
+
expect(to_int('A', 16)).toBe(10);
|
|
30
|
+
expect(to_int('7', 8)).toBe(7);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
test('Должна возвращать целое число для строки с основанием системы счисления 2', () => {
|
|
34
|
+
expect(to_int('1010', 2)).toBe(10);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
test('Должна возвращать целое число для строки с основанием системы счисления 16', () => {
|
|
38
|
+
expect(to_int('A', 16)).toBe(10);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
test('Должна возвращать целое число для строки с основанием системы счисления 8', () => {
|
|
42
|
+
expect(to_int('7', 8)).toBe(7);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
test('Должна выбрасывать исключение для неверного значения параметра base', () => {
|
|
46
|
+
expect(() => to_int('123', 'invalid')).toThrow(TypeError);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { to_integer } from '../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция to_integer', () => {
|
|
5
|
+
test('Должна возвращать целое число для строки', () => {
|
|
6
|
+
expect(to_integer('123')).toBe(123);
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
test('Должна возвращать целое число для числа с плавающей точкой', () => {
|
|
10
|
+
expect(to_integer(123.45)).toBe(123);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
test('Должна возвращать 1 для true и 0 для false', () => {
|
|
14
|
+
expect(to_integer(true)).toBe(1);
|
|
15
|
+
expect(to_integer(false)).toBe(0);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
test('Должна возвращать 0 для null и undefined', () => {
|
|
19
|
+
expect(to_integer(null)).toBe(0);
|
|
20
|
+
expect(to_integer(undefined)).toBe(0);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test('Должна возвращать 0 для нечисловых строк', () => {
|
|
24
|
+
expect(to_integer('example')).toBe(0);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
test('Должна возвращать целое число для строки с основанием системы счисления', () => {
|
|
28
|
+
expect(to_integer('10', 2)).toBe(2);
|
|
29
|
+
expect(to_integer('A', 16)).toBe(10);
|
|
30
|
+
expect(to_integer('7', 8)).toBe(7);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
test('Должна возвращать целое число для строки с основанием системы счисления 2', () => {
|
|
34
|
+
expect(to_integer('1010', 2)).toBe(10);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
test('Должна возвращать целое число для строки с основанием системы счисления 16', () => {
|
|
38
|
+
expect(to_integer('A', 16)).toBe(10);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
test('Должна возвращать целое число для строки с основанием системы счисления 8', () => {
|
|
42
|
+
expect(to_integer('7', 8)).toBe(7);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
test('Должна выбрасывать исключение для неверного значения параметра base', () => {
|
|
46
|
+
expect(() => to_integer('123', 'invalid')).toThrow(TypeError);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { to_list } from '../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция to_list', () => {
|
|
5
|
+
test('должна возвращать пустой массив для null и undefined', () => {
|
|
6
|
+
expect(to_list(null)).toEqual([]);
|
|
7
|
+
expect(to_list(undefined)).toEqual([]);
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
test('должна возвращать исходный массив, если он передан', () => {
|
|
11
|
+
const input = [1, 2, 3];
|
|
12
|
+
expect(to_list(input)).toBe(input);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
test('должна возвращать массив значений объекта, если передан ассоциативный массив', () => {
|
|
16
|
+
const input = { key1: 'value1', key2: 'value2' };
|
|
17
|
+
expect(to_list(input)).toEqual(['value1', 'value2']);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
test('должна возвращать массив с примитивными значениями', () => {
|
|
21
|
+
expect(to_list(true)).toEqual([true]);
|
|
22
|
+
expect(to_list(false)).toEqual([false]);
|
|
23
|
+
expect(to_list('example')).toEqual(['example']);
|
|
24
|
+
expect(to_list(123)).toEqual([123]);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
test('должна оборачивать экземпляр класса в массив', () => {
|
|
28
|
+
class MyClass {}
|
|
29
|
+
const instance = new MyClass();
|
|
30
|
+
expect(to_list(instance)).toEqual([instance]);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import to_object from '../../src/helpers/to_object.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция to_object', () => {
|
|
5
|
+
test('Должна возвращать объект для объекта', () => {
|
|
6
|
+
class MyClass {}
|
|
7
|
+
const obj = new MyClass();
|
|
8
|
+
expect(to_object(obj)).toBe(obj);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
test('Должна возвращать экземпляр класса для класса', () => {
|
|
12
|
+
class MyClass {}
|
|
13
|
+
const instance = to_object(MyClass);
|
|
14
|
+
expect(instance).toBeInstanceOf(MyClass);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test('Должна возвращать экземпляр анонимного класса для null и undefined', () => {
|
|
18
|
+
expect(Object.getPrototypeOf(to_object(null)).constructor.name).toBe('');
|
|
19
|
+
expect(Object.getPrototypeOf(to_object(undefined)).constructor.name).toBe('');
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
test('Должна возвращать объект с элементами массива для массива', () => {
|
|
23
|
+
const arr = [1, 2, 3];
|
|
24
|
+
const obj = to_object(arr);
|
|
25
|
+
expect(Object.getPrototypeOf(obj).constructor.name).toBe('');
|
|
26
|
+
expect(obj[0]).toBe(1);
|
|
27
|
+
expect(obj[1]).toBe(2);
|
|
28
|
+
expect(obj[2]).toBe(3);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
test('Должна возвращать объект с полем value для других значений', () => {
|
|
32
|
+
const obj = to_object('example');
|
|
33
|
+
expect(Object.getPrototypeOf(obj).constructor.name).toBe('');
|
|
34
|
+
expect(obj.value).toBe('example');
|
|
35
|
+
});
|
|
36
|
+
});
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { to_string } from '../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция to_string', () => {
|
|
5
|
+
test('Должна возвращать строку для строки', () => {
|
|
6
|
+
expect(to_string('example')).toBe('example');
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
test('Должна возвращать строку для числа', () => {
|
|
10
|
+
expect(to_string(123)).toBe('123');
|
|
11
|
+
expect(to_string(123.45)).toBe('123.45');
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
test('Должна возвращать строку для булевых значений', () => {
|
|
15
|
+
expect(to_string(true)).toBe('true');
|
|
16
|
+
expect(to_string(false)).toBe('false');
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
test('Должна возвращать строку для null и undefined', () => {
|
|
20
|
+
expect(to_string(null)).toBe('null');
|
|
21
|
+
expect(to_string(undefined)).toBe('undefined');
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
test('Должна возвращать строку для ассоциативных массивов', () => {
|
|
25
|
+
const obj = { key: 'value' };
|
|
26
|
+
expect(to_string(obj)).toBe("{\n key: 'value',\n}");
|
|
27
|
+
expect(to_string({})).toBe('{}');
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test('Должна возвращать строку для массивов', () => {
|
|
31
|
+
const arr = [1, [2], 3];
|
|
32
|
+
expect(to_string(arr)).toBe('[\n 1,\n [\n 2,\n ],\n 3,\n]');
|
|
33
|
+
expect(to_string([])).toBe('[]');
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test('Должна возвращать строку для именованной функции', () => {
|
|
37
|
+
const func = function () {};
|
|
38
|
+
expect(to_string(func)).toBe('function func() {}');
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
test('Должна возвращать строку для безымянной функции', () => {
|
|
42
|
+
expect(to_string(() => {})).toBe('function () {}');
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
test('Должна возвращать строку для символов', () => {
|
|
46
|
+
const symbol = Symbol('example');
|
|
47
|
+
expect(to_string(symbol)).toBe('Symbol(example)');
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test('Должна возвращать строку для BigInt', () => {
|
|
51
|
+
const bigInt = BigInt(123);
|
|
52
|
+
expect(to_string(bigInt)).toBe('123');
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
test('Должна возвращать строку для именованного класса', () => {
|
|
56
|
+
class MyClass {
|
|
57
|
+
static test = 'test';
|
|
58
|
+
}
|
|
59
|
+
expect(to_string(MyClass)).toBe('class MyClass {}');
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
test('Должна возвращать строку для безымянного класса', () => {
|
|
63
|
+
expect(to_string(class {})).toBe('class {}');
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
test('Должна возвращать строку для экземпляров классов', () => {
|
|
67
|
+
class MyClass {}
|
|
68
|
+
const instance = new MyClass();
|
|
69
|
+
expect(to_string(instance)).toBe('object MyClass');
|
|
70
|
+
});
|
|
71
|
+
});
|