@rogolev/value 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
});
|