@rogolev/value 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +142 -1
- package/docs/helpers/array/array_chunk.md +80 -0
- package/docs/helpers/array/array_chunk_with_keys.md +81 -0
- package/docs/helpers/array/array_column.md +110 -0
- package/docs/helpers/array/array_combine.md +77 -0
- package/docs/helpers/array/array_count_values.md +71 -0
- package/docs/helpers/array/array_diff.md +97 -0
- package/docs/helpers/array/array_diff_assoc.md +81 -0
- package/docs/helpers/array/array_diff_key.md +81 -0
- package/docs/helpers/array/array_diff_uassoc.md +101 -0
- package/docs/helpers/array/array_diff_ukey.md +101 -0
- package/docs/helpers/array/array_fill.md +81 -0
- package/docs/helpers/array/array_fill_keys.md +73 -0
- package/docs/helpers/array/array_filter.md +79 -0
- package/docs/helpers/array/array_flip.md +70 -0
- package/docs/helpers/array/array_index_max.md +78 -0
- package/docs/helpers/array/array_index_min.md +78 -0
- package/docs/helpers/array/array_intersect.md +91 -0
- package/docs/helpers/array/array_intersect_assoc.md +91 -0
- package/docs/helpers/array/array_intersect_key.md +91 -0
- package/docs/helpers/array/array_intersect_uassoc.md +101 -0
- package/docs/helpers/array/array_intersect_ukey.md +101 -0
- package/docs/helpers/array/array_key_exists.md +73 -0
- package/docs/helpers/array/array_key_first.md +62 -0
- package/docs/helpers/array/array_key_last.md +62 -0
- package/docs/helpers/array/array_key_to_lower_case.md +57 -0
- package/docs/helpers/array/array_key_to_upper_case.md +57 -0
- package/docs/helpers/array/array_keys.md +62 -0
- package/docs/helpers/array/array_map.md +69 -0
- package/docs/helpers/array/array_merge.md +67 -0
- package/docs/helpers/array/array_merge_recursive.md +86 -0
- package/docs/helpers/array/array_pad.md +83 -0
- package/docs/helpers/array/array_pop.md +64 -0
- package/docs/helpers/array/array_product.md +62 -0
- package/docs/helpers/array/array_push.md +57 -0
- package/docs/helpers/array/array_rand.md +99 -0
- package/docs/helpers/array/array_reduce.md +77 -0
- package/docs/helpers/array/array_replace.md +85 -0
- package/docs/helpers/array/array_replace_recursive.md +87 -0
- package/docs/helpers/array/array_reverse.md +55 -0
- package/docs/helpers/array/array_search.md +74 -0
- package/docs/helpers/array/array_shift.md +64 -0
- package/docs/helpers/array/array_slice.md +65 -0
- package/docs/helpers/array/array_splice.md +103 -0
- package/docs/helpers/array/array_sum.md +55 -0
- package/docs/helpers/array/array_udiff.md +97 -0
- package/docs/helpers/array/array_udiff_assoc.md +101 -0
- package/docs/helpers/array/array_udiff_uassoc.md +88 -0
- package/docs/helpers/array/array_uintersect.md +101 -0
- package/docs/helpers/array/array_uintersect_assoc.md +102 -0
- package/docs/helpers/array/array_uintersect_uassoc.md +135 -0
- package/docs/helpers/array/array_unique.md +54 -0
- package/docs/helpers/array/array_unshift.md +58 -0
- package/docs/helpers/array/array_values.md +54 -0
- package/docs/helpers/array/array_walk.md +87 -0
- package/docs/helpers/array/array_walk_recursive.md +93 -0
- package/docs/helpers/array/count.md +54 -0
- package/docs/helpers/array/in_array.md +65 -0
- package/docs/helpers/array/natsort.md +60 -0
- package/docs/helpers/array/range.md +76 -0
- package/docs/helpers/array/shuffle.md +74 -0
- package/docs/helpers/array/sort.md +79 -0
- package/docs/helpers/is_char.md +84 -0
- package/docs/helpers/string/is_digit_char.md +70 -0
- package/docs/helpers/string/is_whitespace_char.md +70 -0
- package/docs/helpers/string/natcompare.md +69 -0
- package/docs/helpers/string/natcompare_numeric.md +70 -0
- package/docs/helpers.md +125 -1
- package/index.mjs +66 -1
- package/package.json +2 -1
- package/prettier.config.mjs +2 -1
- package/src/helpers/array/array_chunk.mjs +102 -0
- package/src/helpers/array/array_chunk_with_keys.mjs +102 -0
- package/src/helpers/array/array_column.mjs +131 -0
- package/src/helpers/array/array_combine.mjs +26 -0
- package/src/helpers/array/array_count_values.mjs +82 -0
- package/src/helpers/array/array_diff.mjs +77 -0
- package/src/helpers/array/array_diff_assoc.mjs +56 -0
- package/src/helpers/array/array_diff_key.mjs +56 -0
- package/src/helpers/array/array_diff_uassoc.mjs +76 -0
- package/src/helpers/array/array_diff_ukey.mjs +71 -0
- package/src/helpers/array/array_fill.mjs +108 -0
- package/src/helpers/array/array_fill_keys.mjs +90 -0
- package/src/helpers/array/array_filter.mjs +105 -0
- package/src/helpers/array/array_flip.mjs +58 -0
- package/src/helpers/array/array_index_max.mjs +82 -0
- package/src/helpers/array/array_index_min.mjs +82 -0
- package/src/helpers/array/array_intersect.mjs +71 -0
- package/src/helpers/array/array_intersect_assoc.mjs +67 -0
- package/src/helpers/array/array_intersect_key.mjs +67 -0
- package/src/helpers/array/array_intersect_uassoc.mjs +77 -0
- package/src/helpers/array/array_intersect_ukey.mjs +72 -0
- package/src/helpers/array/array_key_exists.mjs +83 -0
- package/src/helpers/array/array_key_first.mjs +73 -0
- package/src/helpers/array/array_key_last.mjs +74 -0
- package/src/helpers/array/array_key_to_lower_case.mjs +71 -0
- package/src/helpers/array/array_key_to_upper_case.mjs +71 -0
- package/src/helpers/array/array_keys.mjs +65 -0
- package/src/helpers/array/array_map.mjs +84 -0
- package/src/helpers/array/array_merge.mjs +95 -0
- package/src/helpers/array/array_merge_recursive.mjs +153 -0
- package/src/helpers/array/array_pad.mjs +105 -0
- package/src/helpers/array/array_pop.mjs +82 -0
- package/src/helpers/array/array_product.mjs +67 -0
- package/src/helpers/array/array_push.mjs +75 -0
- package/src/helpers/array/array_rand.mjs +129 -0
- package/src/helpers/array/array_reduce.mjs +90 -0
- package/src/helpers/array/array_replace.mjs +25 -0
- package/src/helpers/array/array_replace_recursive.mjs +109 -0
- package/src/helpers/array/array_reverse.mjs +62 -0
- package/src/helpers/array/array_search.mjs +104 -0
- package/src/helpers/array/array_shift.mjs +78 -0
- package/src/helpers/array/array_slice.mjs +99 -0
- package/src/helpers/array/array_splice.mjs +218 -0
- package/src/helpers/array/array_sum.mjs +60 -0
- package/src/helpers/array/array_udiff.mjs +91 -0
- package/src/helpers/array/array_udiff_assoc.mjs +71 -0
- package/src/helpers/array/array_udiff_uassoc.mjs +124 -0
- package/src/helpers/array/array_uintersect.mjs +72 -0
- package/src/helpers/array/array_uintersect_assoc.mjs +77 -0
- package/src/helpers/array/array_uintersect_uassoc.mjs +121 -0
- package/src/helpers/array/array_unique.mjs +77 -0
- package/src/helpers/array/array_unshift.mjs +64 -0
- package/src/helpers/array/array_values.mjs +57 -0
- package/src/helpers/array/array_walk.mjs +95 -0
- package/src/helpers/array/array_walk_recursive.mjs +104 -0
- package/src/helpers/array/count.mjs +57 -0
- package/src/helpers/array/in_array.mjs +67 -0
- package/src/helpers/array/natsort.mjs +62 -0
- package/src/helpers/array/range.mjs +121 -0
- package/src/helpers/array/shuffle.mjs +73 -0
- package/src/helpers/array/sort.mjs +69 -0
- package/src/helpers/is_char.mjs +54 -0
- package/src/helpers/string/is_digit_char.mjs +60 -0
- package/src/helpers/string/is_whitespace_char.mjs +54 -0
- package/src/helpers/string/natcompare.mjs +107 -0
- package/src/helpers/string/natcompare_numeric.mjs +131 -0
- package/tests/helpers/array/array_chunk.test.mjs +49 -0
- package/tests/helpers/array/array_chunk_with_keys.test.mjs +45 -0
- package/tests/helpers/array/array_column.test.mjs +87 -0
- package/tests/helpers/array/array_combine.test.mjs +41 -0
- package/tests/helpers/array/array_count_values.test.mjs +40 -0
- package/tests/helpers/array/array_diff.test.mjs +78 -0
- package/tests/helpers/array/array_diff_assoc.test.mjs +64 -0
- package/tests/helpers/array/array_diff_key.test.mjs +64 -0
- package/tests/helpers/array/array_diff_uassoc.test.mjs +73 -0
- package/tests/helpers/array/array_diff_ukey.test.mjs +77 -0
- package/tests/helpers/array/array_fill.test.mjs +47 -0
- package/tests/helpers/array/array_fill_keys.test.mjs +35 -0
- package/tests/helpers/array/array_filter.test.mjs +38 -0
- package/tests/helpers/array/array_flip.test.mjs +33 -0
- package/tests/helpers/array/array_index_max.test.mjs +41 -0
- package/tests/helpers/array/array_index_min.test.mjs +41 -0
- package/tests/helpers/array/array_intersect.test.mjs +65 -0
- package/tests/helpers/array/array_intersect_assoc.test.mjs +65 -0
- package/tests/helpers/array/array_intersect_key.test.mjs +65 -0
- package/tests/helpers/array/array_intersect_uassoc.test.mjs +76 -0
- package/tests/helpers/array/array_intersect_ukey.test.mjs +74 -0
- package/tests/helpers/array/array_key_exists.test.mjs +36 -0
- package/tests/helpers/array/array_key_first.test.mjs +29 -0
- package/tests/helpers/array/array_key_last.test.mjs +29 -0
- package/tests/helpers/array/array_key_to_lower_case.test.mjs +23 -0
- package/tests/helpers/array/array_key_to_upper_case.test.mjs +23 -0
- package/tests/helpers/array/array_keys.test.mjs +27 -0
- package/tests/helpers/array/array_map.test.mjs +32 -0
- package/tests/helpers/array/array_merge.test.mjs +37 -0
- package/tests/helpers/array/array_merge_recursive.test.mjs +65 -0
- package/tests/helpers/array/array_pad.test.mjs +48 -0
- package/tests/helpers/array/array_pop.test.mjs +29 -0
- package/tests/helpers/array/array_product.test.mjs +33 -0
- package/tests/helpers/array/array_push.test.mjs +31 -0
- package/tests/helpers/array/array_rand.test.mjs +59 -0
- package/tests/helpers/array/array_reduce.test.mjs +44 -0
- package/tests/helpers/array/array_replace.test.mjs +46 -0
- package/tests/helpers/array/array_replace_recursive.test.mjs +46 -0
- package/tests/helpers/array/array_reverse.test.mjs +31 -0
- package/tests/helpers/array/array_search.test.mjs +48 -0
- package/tests/helpers/array/array_shift.test.mjs +29 -0
- package/tests/helpers/array/array_slice.test.mjs +49 -0
- package/tests/helpers/array/array_splice.test.mjs +67 -0
- package/tests/helpers/array/array_sum.test.mjs +27 -0
- package/tests/helpers/array/array_udiff.test.mjs +95 -0
- package/tests/helpers/array/array_udiff_assoc.test.mjs +77 -0
- package/tests/helpers/array/array_udiff_uassoc.test.mjs +89 -0
- package/tests/helpers/array/array_uintersect.test.mjs +78 -0
- package/tests/helpers/array/array_uintersect_assoc.test.mjs +80 -0
- package/tests/helpers/array/array_uintersect_uassoc.test.mjs +122 -0
- package/tests/helpers/array/array_unique.test.mjs +27 -0
- package/tests/helpers/array/array_unshift.test.mjs +31 -0
- package/tests/helpers/array/array_values.test.mjs +27 -0
- package/tests/helpers/array/array_walk.test.mjs +48 -0
- package/tests/helpers/array/array_walk_recursive.test.mjs +53 -0
- package/tests/helpers/array/count.test.mjs +27 -0
- package/tests/helpers/array/in_array.test.mjs +52 -0
- package/tests/helpers/array/natsort.test.mjs +71 -0
- package/tests/helpers/array/range.test.mjs +51 -0
- package/tests/helpers/array/shuffle.test.mjs +42 -0
- package/tests/helpers/array/sort.test.mjs +60 -0
- package/tests/helpers/is_char.test.mjs +40 -0
- package/tests/helpers/string/is_digit_char.test.mjs +32 -0
- package/tests/helpers/string/is_whitespace_char.test.mjs +32 -0
- package/tests/helpers/string/natcompare.test.mjs +100 -0
- package/tests/helpers/string/natcompare_numeric.test.mjs +110 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { array_intersect_uassoc } from '../../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция array_intersect_uassoc', () => {
|
|
5
|
+
const key_compare_func = (a, b) => a === b;
|
|
6
|
+
|
|
7
|
+
test('Должна возвращать элементы из первого массива, которые присутствуют в других массивах', () => {
|
|
8
|
+
const original_array = { a: 1, b: 2, c: 3 };
|
|
9
|
+
const array1 = { a: 1, b: 2 };
|
|
10
|
+
const array2 = { b: 2, c: 3 };
|
|
11
|
+
const result = array_intersect_uassoc(key_compare_func, original_array, array1, array2);
|
|
12
|
+
expect(result).toEqual({ a: 1, b: 2, c: 3 });
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
test('Должна возвращать пустой объект, если все элементы первого массива отсутствуют в других массивах', () => {
|
|
16
|
+
const original_array = { a: 1, b: 2 };
|
|
17
|
+
const array1 = { c: 3, d: 4 };
|
|
18
|
+
const result = array_intersect_uassoc(key_compare_func, original_array, array1);
|
|
19
|
+
expect(result).toEqual({});
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
test('Должна корректно обрабатывать пустые массивы', () => {
|
|
23
|
+
const original_array = {};
|
|
24
|
+
const array1 = {};
|
|
25
|
+
const result = array_intersect_uassoc(key_compare_func, original_array, array1);
|
|
26
|
+
expect(result).toEqual({});
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
test('Должна выбрасывать ошибку, если переданное значение для key_compare_func не является функцией', () => {
|
|
30
|
+
expect(() => array_intersect_uassoc('not a function', {})).toThrow(TypeError);
|
|
31
|
+
expect(() => array_intersect_uassoc('not a function', {})).toThrow(
|
|
32
|
+
'Параметр "key_compare_func" должен быть функцией.',
|
|
33
|
+
);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test('Должна выбрасывать ошибку, если переданное значение для original_array не является массивом', () => {
|
|
37
|
+
expect(() => array_intersect_uassoc(key_compare_func, 'not an array')).toThrow(TypeError);
|
|
38
|
+
expect(() => array_intersect_uassoc(key_compare_func, 'not an array')).toThrow(
|
|
39
|
+
'Параметр "original_array" должен быть массивом.',
|
|
40
|
+
);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
test('Должна выбрасывать ошибку, если переданное значение для arrays не является массивом', () => {
|
|
44
|
+
expect(() => array_intersect_uassoc(key_compare_func, {}, 'not an array')).toThrow(
|
|
45
|
+
TypeError,
|
|
46
|
+
);
|
|
47
|
+
expect(() => array_intersect_uassoc(key_compare_func, {}, 'not an array')).toThrow(
|
|
48
|
+
'Параметр "arrays" должен быть массивом.',
|
|
49
|
+
);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
test('Должна корректно обрабатывать массивы с различными типами данных', () => {
|
|
53
|
+
const original_array = { a: 1, b: '2', c: true };
|
|
54
|
+
const array1 = { a: 1, b: 2, d: false };
|
|
55
|
+
const result = array_intersect_uassoc(key_compare_func, original_array, array1);
|
|
56
|
+
expect(result).toEqual({ a: 1 });
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
test('Должна корректно обрабатывать несколько массивов для сравнения', () => {
|
|
60
|
+
const original_array = { a: 1, b: 2, c: 3, d: 4 };
|
|
61
|
+
const array1 = { a: 1, b: 2 };
|
|
62
|
+
const array2 = { c: 3 };
|
|
63
|
+
const result = array_intersect_uassoc(key_compare_func, original_array, array1, array2);
|
|
64
|
+
expect(result).toEqual({ a: 1, b: 2, c: 3 });
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
test('Должна корректно обрабатывать массивы с вложенными структурами', () => {
|
|
68
|
+
const original_array = {
|
|
69
|
+
a: { id: 1, data: [1, 2] },
|
|
70
|
+
b: { id: 2, data: [3, 4] },
|
|
71
|
+
};
|
|
72
|
+
const array1 = { a: { id: 1, data: [1, 2] } };
|
|
73
|
+
const result = array_intersect_uassoc(key_compare_func, original_array, array1);
|
|
74
|
+
expect(result).toEqual({ a: { id: 1, data: [1, 2] } });
|
|
75
|
+
});
|
|
76
|
+
});
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { array_intersect_ukey } from '../../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция array_intersect_ukey', () => {
|
|
5
|
+
const key_compare_func = (a, b) => a === b;
|
|
6
|
+
|
|
7
|
+
test('Должна возвращать элементы из первого массива, которые присутствуют в других массивах', () => {
|
|
8
|
+
const original_array = { a: 1, b: 2, c: 3 };
|
|
9
|
+
const array1 = { a: 1, b: 2 };
|
|
10
|
+
const array2 = { b: 2, c: 3 };
|
|
11
|
+
const result = array_intersect_ukey(key_compare_func, original_array, array1, array2);
|
|
12
|
+
expect(result).toEqual({ a: 1, b: 2, c: 3 });
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
test('Должна возвращать пустой объект, если все элементы первого массива отсутствуют в других массивах', () => {
|
|
16
|
+
const original_array = { a: 1, b: 2 };
|
|
17
|
+
const array1 = { c: 3, d: 4 };
|
|
18
|
+
const result = array_intersect_ukey(key_compare_func, original_array, array1);
|
|
19
|
+
expect(result).toEqual({});
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
test('Должна корректно обрабатывать пустые массивы', () => {
|
|
23
|
+
const original_array = {};
|
|
24
|
+
const array1 = {};
|
|
25
|
+
const result = array_intersect_ukey(key_compare_func, original_array, array1);
|
|
26
|
+
expect(result).toEqual({});
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
test('Должна выбрасывать ошибку, если переданное значение для key_compare_func не является функцией', () => {
|
|
30
|
+
expect(() => array_intersect_ukey('not a function', {})).toThrow(TypeError);
|
|
31
|
+
expect(() => array_intersect_ukey('not a function', {})).toThrow(
|
|
32
|
+
'Параметр "key_compare_func" должен быть функцией.',
|
|
33
|
+
);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test('Должна выбрасывать ошибку, если переданное значение для original_array не является массивом', () => {
|
|
37
|
+
expect(() => array_intersect_ukey(key_compare_func, 'not an array')).toThrow(TypeError);
|
|
38
|
+
expect(() => array_intersect_ukey(key_compare_func, 'not an array')).toThrow(
|
|
39
|
+
'Параметр "original_array" должен быть массивом.',
|
|
40
|
+
);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
test('Должна выбрасывать ошибку, если переданное значение для arrays не является массивом', () => {
|
|
44
|
+
expect(() => array_intersect_ukey(key_compare_func, {}, 'not an array')).toThrow(TypeError);
|
|
45
|
+
expect(() => array_intersect_ukey(key_compare_func, {}, 'not an array')).toThrow(
|
|
46
|
+
'Параметр "arrays" должен быть массивом.',
|
|
47
|
+
);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test('Должна корректно обрабатывать массивы с различными типами данных', () => {
|
|
51
|
+
const original_array = { a: 1, b: '2', c: true };
|
|
52
|
+
const array1 = { a: 1, b: 2, d: false };
|
|
53
|
+
const result = array_intersect_ukey(key_compare_func, original_array, array1);
|
|
54
|
+
expect(result).toEqual({ a: 1, b: '2' });
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
test('Должна корректно обрабатывать несколько массивов для сравнения', () => {
|
|
58
|
+
const original_array = { a: 1, b: 2, c: 3, d: 4 };
|
|
59
|
+
const array1 = { a: 1, b: 2 };
|
|
60
|
+
const array2 = { c: 3 };
|
|
61
|
+
const result = array_intersect_ukey(key_compare_func, original_array, array1, array2);
|
|
62
|
+
expect(result).toEqual({ a: 1, b: 2, c: 3 });
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
test('Должна корректно обрабатывать массивы с вложенными структурами', () => {
|
|
66
|
+
const original_array = {
|
|
67
|
+
a: { id: 1, data: [1, 2] },
|
|
68
|
+
b: { id: 2, data: [3, 4] },
|
|
69
|
+
};
|
|
70
|
+
const array1 = { a: { id: 1, data: [1, 2] } };
|
|
71
|
+
const result = array_intersect_ukey(key_compare_func, original_array, array1);
|
|
72
|
+
expect(result).toEqual({ a: { id: 1, data: [1, 2] } });
|
|
73
|
+
});
|
|
74
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { array_key_exists } from '../../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция array_key_exists', () => {
|
|
5
|
+
test('Должна возвращать true, если ключ существует в обычном массиве', () => {
|
|
6
|
+
const array = [1, 2, 3];
|
|
7
|
+
const result = array_key_exists(array, 1);
|
|
8
|
+
expect(result).toBe(true);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
test('Должна возвращать true, если ключ существует в ассоциативном массиве', () => {
|
|
12
|
+
const array = { a: 1, b: 2, c: 3 };
|
|
13
|
+
const result = array_key_exists(array, 'b');
|
|
14
|
+
expect(result).toBe(true);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test('Должна возвращать false, если ключ отсутствует в массиве', () => {
|
|
18
|
+
const array = [1, 2, 3];
|
|
19
|
+
const result = array_key_exists(array, 5);
|
|
20
|
+
expect(result).toBe(false);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test('Должна выбрасывать ошибку, если value не является массивом', () => {
|
|
24
|
+
expect(() => array_key_exists('not an array', 1)).toThrow(TypeError);
|
|
25
|
+
expect(() => array_key_exists('not an array', 1)).toThrow(
|
|
26
|
+
'Параметр "value" должен быть массивом.',
|
|
27
|
+
);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test('Должна выбрасывать ошибку, если key не является целым числом или строкой', () => {
|
|
31
|
+
expect(() => array_key_exists([1, 2, 3], {})).toThrow(TypeError);
|
|
32
|
+
expect(() => array_key_exists([1, 2, 3], {})).toThrow(
|
|
33
|
+
'Параметр "key" должен быть целым числом или строкой.',
|
|
34
|
+
);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { array_key_first } from '../../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция array_key_first', () => {
|
|
5
|
+
test('Должна возвращать первый ключ обычного массива', () => {
|
|
6
|
+
const array = [1, 2, 3];
|
|
7
|
+
const result = array_key_first(array);
|
|
8
|
+
expect(result).toBe(0);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
test('Должна возвращать первый ключ ассоциативного массива', () => {
|
|
12
|
+
const array = { a: 1, b: 2, c: 3 };
|
|
13
|
+
const result = array_key_first(array);
|
|
14
|
+
expect(result).toBe('a');
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test('Должна возвращать null для пустого массива', () => {
|
|
18
|
+
const array = [];
|
|
19
|
+
const result = array_key_first(array);
|
|
20
|
+
expect(result).toBeNull();
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test('Должна выбрасывать ошибку, если value не является массивом', () => {
|
|
24
|
+
expect(() => array_key_first('not an array')).toThrow(TypeError);
|
|
25
|
+
expect(() => array_key_first('not an array')).toThrow(
|
|
26
|
+
'Параметр "value" должен быть массивом.',
|
|
27
|
+
);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { array_key_last } from '../../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция array_key_last', () => {
|
|
5
|
+
test('Должна возвращать последний ключ обычного массива', () => {
|
|
6
|
+
const array = [1, 2, 3];
|
|
7
|
+
const result = array_key_last(array);
|
|
8
|
+
expect(result).toBe(2);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
test('Должна возвращать последний ключ ассоциативного массива', () => {
|
|
12
|
+
const array = { a: 1, b: 2, c: 3 };
|
|
13
|
+
const result = array_key_last(array);
|
|
14
|
+
expect(result).toBe('c');
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test('Должна возвращать null для пустого массива', () => {
|
|
18
|
+
const array = [];
|
|
19
|
+
const result = array_key_last(array);
|
|
20
|
+
expect(result).toBeNull();
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test('Должна выбрасывать ошибку, если value не является массивом', () => {
|
|
24
|
+
expect(() => array_key_last('not an array')).toThrow(TypeError);
|
|
25
|
+
expect(() => array_key_last('not an array')).toThrow(
|
|
26
|
+
'Параметр "value" должен быть массивом.',
|
|
27
|
+
);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { array_key_to_lower_case } from '../../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция array_key_to_lower_case', () => {
|
|
5
|
+
test('Должна преобразовывать ключи ассоциативного массива в нижний регистр', () => {
|
|
6
|
+
const assoc = { Key1: 'value1', Key2: 'value2' };
|
|
7
|
+
const result = array_key_to_lower_case(assoc);
|
|
8
|
+
expect(result).toEqual({ key1: 'value1', key2: 'value2' });
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
test('Должна возвращать список (обычный массив) без изменений', () => {
|
|
12
|
+
const list = [1, 2, 3];
|
|
13
|
+
const result = array_key_to_lower_case(list);
|
|
14
|
+
expect(result).toEqual(list);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test('Должна выбрасывать ошибку, если переданное значение не является массивом', () => {
|
|
18
|
+
expect(() => array_key_to_lower_case('not an array')).toThrow(TypeError);
|
|
19
|
+
expect(() => array_key_to_lower_case('not an array')).toThrow(
|
|
20
|
+
'Параметр "array" должен быть массивом.',
|
|
21
|
+
);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { array_key_to_upper_case } from '../../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция array_key_to_upper_case', () => {
|
|
5
|
+
test('Должна преобразовывать ключи ассоциативного массива в верхний регистр', () => {
|
|
6
|
+
const assoc = { key1: 'value1', key2: 'value2' };
|
|
7
|
+
const result = array_key_to_upper_case(assoc);
|
|
8
|
+
expect(result).toEqual({ KEY1: 'value1', KEY2: 'value2' });
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
test('Должна возвращать список (обычный массив) без изменений', () => {
|
|
12
|
+
const list = [1, 2, 3];
|
|
13
|
+
const result = array_key_to_upper_case(list);
|
|
14
|
+
expect(result).toEqual(list);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test('Должна выбрасывать ошибку, если переданное значение не является массивом', () => {
|
|
18
|
+
expect(() => array_key_to_upper_case('not an array')).toThrow(TypeError);
|
|
19
|
+
expect(() => array_key_to_upper_case('not an array')).toThrow(
|
|
20
|
+
'Параметр "array" должен быть массивом.',
|
|
21
|
+
);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { array_keys } from '../../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция array_keys', () => {
|
|
5
|
+
test('Должна возвращать массив ключей из обычного массива', () => {
|
|
6
|
+
const array = [1, 2, 3];
|
|
7
|
+
const result = array_keys(array);
|
|
8
|
+
expect(result).toEqual(['0', '1', '2']);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
test('Должна возвращать массив ключей из ассоциативного массива', () => {
|
|
12
|
+
const array = { a: 1, b: 2, c: 3 };
|
|
13
|
+
const result = array_keys(array);
|
|
14
|
+
expect(result).toEqual(['a', 'b', 'c']);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test('Должна возвращать пустой массив для пустого массива', () => {
|
|
18
|
+
const array = [];
|
|
19
|
+
const result = array_keys(array);
|
|
20
|
+
expect(result).toEqual([]);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test('Должна выбрасывать ошибку, если value не является массивом или объектом', () => {
|
|
24
|
+
expect(() => array_keys('not an array')).toThrow(TypeError);
|
|
25
|
+
expect(() => array_keys('not an array')).toThrow('Параметр "value" должен быть массивом.');
|
|
26
|
+
});
|
|
27
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { array_map } from '../../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция array_map', () => {
|
|
5
|
+
test('Должна применять функцию обратного вызова к обычному массиву', () => {
|
|
6
|
+
const array = [1, 2, 3];
|
|
7
|
+
const callback = (value) => value * 2;
|
|
8
|
+
const result = array_map(array, callback);
|
|
9
|
+
expect(result).toEqual([2, 4, 6]);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
test('Должна применять функцию обратного вызова к ассоциативному массиву', () => {
|
|
13
|
+
const array = { a: 1, b: 2, c: 3 };
|
|
14
|
+
const callback = (value) => value * 2;
|
|
15
|
+
const result = array_map(array, callback);
|
|
16
|
+
expect(result).toEqual({ a: 2, b: 4, c: 6 });
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
test('Должна выбрасывать ошибку, если value не является массивом', () => {
|
|
20
|
+
expect(() => array_map('not an array', (value) => value * 2)).toThrow(TypeError);
|
|
21
|
+
expect(() => array_map('not an array', (value) => value * 2)).toThrow(
|
|
22
|
+
'Параметр "value" должен быть массивом.',
|
|
23
|
+
);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
test('Должна выбрасывать ошибку, если callback не является функцией', () => {
|
|
27
|
+
expect(() => array_map([1, 2, 3], 'not a function')).toThrow(TypeError);
|
|
28
|
+
expect(() => array_map([1, 2, 3], 'not a function')).toThrow(
|
|
29
|
+
'Параметр "callback" должен быть функцией.',
|
|
30
|
+
);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { array_merge } from '../../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция array_merge', () => {
|
|
5
|
+
test('Должна объединять обычные массивы', () => {
|
|
6
|
+
const array1 = [1, 2, 3];
|
|
7
|
+
const array2 = [4, 5, 6];
|
|
8
|
+
const result = array_merge(array1, array2);
|
|
9
|
+
expect(result).toEqual([1, 2, 3, 4, 5, 6]);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
test('Должна объединять ассоциативные массивы', () => {
|
|
13
|
+
const array1 = { a: 1, b: 2 };
|
|
14
|
+
const array2 = { c: 3, d: 4 };
|
|
15
|
+
const result = array_merge(array1, array2);
|
|
16
|
+
expect(result).toEqual({ a: 1, b: 2, c: 3, d: 4 });
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
test('Должна объединять обычные и ассоциативные массивы', () => {
|
|
20
|
+
const array1 = [1, 2, 3];
|
|
21
|
+
const array2 = { a: 4, b: 5 };
|
|
22
|
+
const result = array_merge(array1, array2);
|
|
23
|
+
expect(result).toEqual({ 0: 1, 1: 2, 2: 3, a: 4, b: 5 });
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
test('Должна возвращать пустой массив, если массивы пустые', () => {
|
|
27
|
+
const result = array_merge([], []);
|
|
28
|
+
expect(result).toEqual([]);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
test('Должна выбрасывать ошибку, если хотя бы один из параметров не является массивом', () => {
|
|
32
|
+
expect(() => array_merge('not an array')).toThrow(TypeError);
|
|
33
|
+
expect(() => array_merge('not an array')).toThrow(
|
|
34
|
+
'Параметр "arrays" должен быть массивом.',
|
|
35
|
+
);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { array_merge_recursive } from '../../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция array_merge_recursive', () => {
|
|
5
|
+
test('Должна объединять обычные массивы рекурсивно', () => {
|
|
6
|
+
const array1 = [1, 2, 3];
|
|
7
|
+
const array2 = [4, 5, 6];
|
|
8
|
+
const result = array_merge_recursive(array1, array2);
|
|
9
|
+
expect(result).toEqual([1, 2, 3, 4, 5, 6]);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
test('Должна объединять ассоциативные массивы рекурсивно', () => {
|
|
13
|
+
const array1 = { a: 1, b: 2 };
|
|
14
|
+
const array2 = { b: 3, c: 4 };
|
|
15
|
+
const result = array_merge_recursive(array1, array2);
|
|
16
|
+
expect(result).toEqual({ a: 1, b: [2, 3], c: 4 });
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
test('Должна объединять обычные и ассоциативные массивы рекурсивно', () => {
|
|
20
|
+
const array1 = [1, 2, 3];
|
|
21
|
+
const array2 = { a: 4, b: 5 };
|
|
22
|
+
const result = array_merge_recursive(array1, array2);
|
|
23
|
+
expect(result).toEqual({ 0: 1, 1: 2, 2: 3, a: 4, b: 5 });
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
test('Должна объединять вложенные массивы рекурсивно', () => {
|
|
27
|
+
const array1 = { a: { b: 1 } };
|
|
28
|
+
const array2 = { a: { c: 2 } };
|
|
29
|
+
const result = array_merge_recursive(array1, array2);
|
|
30
|
+
expect(result).toEqual({ a: { b: 1, c: 2 } });
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
test('Должна объединять вложенные массивы с одинаковыми ключами рекурсивно', () => {
|
|
34
|
+
const array1 = { a: { b: 1 } };
|
|
35
|
+
const array2 = { a: { b: 2 } };
|
|
36
|
+
const result = array_merge_recursive(array1, array2);
|
|
37
|
+
expect(result).toEqual({ a: { b: [1, 2] } });
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
test('Должна объединять массивы с разными типами данных рекурсивно', () => {
|
|
41
|
+
const array1 = { a: 1, b: { c: 2 } };
|
|
42
|
+
const array2 = { b: { d: 3 }, e: 4 };
|
|
43
|
+
const result = array_merge_recursive(array1, array2);
|
|
44
|
+
expect(result).toEqual({ a: 1, b: { c: 2, d: 3 }, e: 4 });
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
test('Должна объединять массивы с одинаковыми ключами и разными типами данных рекурсивно', () => {
|
|
48
|
+
const array1 = { a: 1, b: { c: 2 } };
|
|
49
|
+
const array2 = { a: 'one', b: { c: 'two' } };
|
|
50
|
+
const result = array_merge_recursive(array1, array2);
|
|
51
|
+
expect(result).toEqual({ a: [1, 'one'], b: { c: [2, 'two'] } });
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
test('Должна возвращать пустой массив, если массивы пустые', () => {
|
|
55
|
+
const result = array_merge_recursive([], []);
|
|
56
|
+
expect(result).toEqual([]);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
test('Должна выбрасывать ошибку, если хотя бы один из параметров не является массивом', () => {
|
|
60
|
+
expect(() => array_merge_recursive('not an array')).toThrow(TypeError);
|
|
61
|
+
expect(() => array_merge_recursive('not an array')).toThrow(
|
|
62
|
+
'Параметр "arrays" должен быть массивом.',
|
|
63
|
+
);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { array_pad } from '../../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция array_pad', () => {
|
|
5
|
+
test('Должна добавлять элементы в конец массива, если размер положительный', () => {
|
|
6
|
+
const array = [1, 2, 3];
|
|
7
|
+
const result = array_pad(array, 5, 0);
|
|
8
|
+
expect(result).toEqual([1, 2, 3, 0, 0]);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
test('Должна добавлять элементы в начало массива, если размер отрицательный', () => {
|
|
12
|
+
const array = [1, 2, 3];
|
|
13
|
+
const result = array_pad(array, -5, 0);
|
|
14
|
+
expect(result).toEqual([0, 0, 1, 2, 3]);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test('Должна возвращать массив без изменений, если размер меньше или равен текущему размеру массива', () => {
|
|
18
|
+
const array = [1, 2, 3];
|
|
19
|
+
const result = array_pad(array, 3, 0);
|
|
20
|
+
expect(result).toEqual([1, 2, 3]);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test('Должна возвращать пустой массив, если исходный массив пустой и размер положительный', () => {
|
|
24
|
+
const array = [];
|
|
25
|
+
const result = array_pad(array, 3, 0);
|
|
26
|
+
expect(result).toEqual([0, 0, 0]);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
test('Должна возвращать пустой массив, если исходный массив пустой и размер отрицательный', () => {
|
|
30
|
+
const array = [];
|
|
31
|
+
const result = array_pad(array, -3, 0);
|
|
32
|
+
expect(result).toEqual([0, 0, 0]);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
test('Должна выбрасывать ошибку, если первый параметр не является массивом', () => {
|
|
36
|
+
expect(() => array_pad('not an array', 5, 0)).toThrow(TypeError);
|
|
37
|
+
expect(() => array_pad('not an array', 5, 0)).toThrow(
|
|
38
|
+
'Параметр "arr" должен быть массивом.',
|
|
39
|
+
);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
test('Должна выбрасывать ошибку, если второй параметр не является числом', () => {
|
|
43
|
+
expect(() => array_pad([1, 2, 3], 'not a number', 0)).toThrow(TypeError);
|
|
44
|
+
expect(() => array_pad([1, 2, 3], 'not a number', 0)).toThrow(
|
|
45
|
+
'Параметр "length" должен быть целым числом.',
|
|
46
|
+
);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { array_pop } from '../../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция array_pop', () => {
|
|
5
|
+
test('Должна удалять и возвращать последний элемент обычного массива', () => {
|
|
6
|
+
const array = [1, 2, 3];
|
|
7
|
+
const result = array_pop(array);
|
|
8
|
+
expect(result).toBe(3);
|
|
9
|
+
expect(array).toEqual([1, 2]);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
test('Должна удалять и возвращать последний элемент ассоциативного массива', () => {
|
|
13
|
+
const array = { a: 1, b: 2, c: 3 };
|
|
14
|
+
const result = array_pop(array);
|
|
15
|
+
expect(result).toBe(3);
|
|
16
|
+
expect(array).toEqual({ a: 1, b: 2 });
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
test('Должна возвращать null для пустого массива', () => {
|
|
20
|
+
const array = [];
|
|
21
|
+
const result = array_pop(array);
|
|
22
|
+
expect(result).toBeNull();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test('Должна выбрасывать ошибку, если параметр не является массивом', () => {
|
|
26
|
+
expect(() => array_pop('not an array')).toThrow(TypeError);
|
|
27
|
+
expect(() => array_pop('not an array')).toThrow('Параметр "arr" должен быть массивом.');
|
|
28
|
+
});
|
|
29
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { array_product } from '../../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция array_product', () => {
|
|
5
|
+
test('Должна вычислять произведение значений обычного массива', () => {
|
|
6
|
+
const array = [1, 2, 3, 4];
|
|
7
|
+
const result = array_product(array);
|
|
8
|
+
expect(result).toBe(24);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
test('Должна вычислять произведение значений ассоциативного массива', () => {
|
|
12
|
+
const array = { a: 1, b: 2, c: 3 };
|
|
13
|
+
const result = array_product(array);
|
|
14
|
+
expect(result).toBe(6);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test('Должна возвращать 1 для пустого массива', () => {
|
|
18
|
+
const array = [];
|
|
19
|
+
const result = array_product(array);
|
|
20
|
+
expect(result).toBe(1);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test('Должна игнорировать нечисловые значения в массиве', () => {
|
|
24
|
+
const array = [1, 'a', 2, 'b', 3];
|
|
25
|
+
const result = array_product(array);
|
|
26
|
+
expect(result).toBe(6);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
test('Должна выбрасывать ошибку, если параметр не является массивом', () => {
|
|
30
|
+
expect(() => array_product('not an array')).toThrow(TypeError);
|
|
31
|
+
expect(() => array_product('not an array')).toThrow('Параметр "arr" должен быть массивом.');
|
|
32
|
+
});
|
|
33
|
+
});
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { expect, test, describe } from '@jest/globals';
|
|
2
|
+
import { array_push } from '../../../index.mjs';
|
|
3
|
+
|
|
4
|
+
describe('Функция array_push', () => {
|
|
5
|
+
test('Должна добавлять элементы в конец обычного массива', () => {
|
|
6
|
+
const array = [1, 2, 3];
|
|
7
|
+
const result = array_push(array, 4, 5);
|
|
8
|
+
expect(result).toBe(5);
|
|
9
|
+
expect(array).toEqual([1, 2, 3, 4, 5]);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
test('Должна добавлять элементы в конец ассоциативного массива', () => {
|
|
13
|
+
const array = { a: 1, b: 2 };
|
|
14
|
+
const result = array_push(array, 3, 4);
|
|
15
|
+
expect(result).toBe(4);
|
|
16
|
+
expect(array).toEqual({ a: 1, b: 2, 0: 3, 1: 4 });
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
test('Должна возвращать новую длину массива после добавления элементов', () => {
|
|
20
|
+
const array = [1, 2, 3];
|
|
21
|
+
const result = array_push(array, 4, 5);
|
|
22
|
+
expect(result).toBe(5);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test('Должна выбрасывать ошибку, если параметр не является массивом', () => {
|
|
26
|
+
expect(() => array_push('not an array', 1, 2)).toThrow(TypeError);
|
|
27
|
+
expect(() => array_push('not an array', 1, 2)).toThrow(
|
|
28
|
+
'Параметр "arr" должен быть массивом.',
|
|
29
|
+
);
|
|
30
|
+
});
|
|
31
|
+
});
|