deno.land / std@0.166.0 / collections / associate_with_test.ts

associate_with_test.ts
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
import { assertEquals } from "../testing/asserts.ts";import { associateWith } from "./associate_with.ts";
function associateWithTest<T>( input: [readonly string[], (el: string) => T], expected: { [x: string]: T }, message?: string,) { const actual = associateWith(...input); assertEquals(actual, expected, message);}
Deno.test({ name: "[collections/associateWith] no mutation", fn() { const arrayA = ["Foo", "Bar"]; associateWith(arrayA, (it) => it.charAt(0));
assertEquals(arrayA, ["Foo", "Bar"]); },});
Deno.test({ name: "[collections/associateWith] empty input", fn() { associateWithTest([[], () => "abc"], {}); },});
Deno.test({ name: "[collections/associateWith] associates", fn() { associateWithTest<number>( [ [ "Kim", "Lara", "Jonathan", ], (it) => it.length, ], { "Kim": 3, "Lara": 4, "Jonathan": 8, }, ); associateWithTest( [ [ "Kim@example.org", "Lara@example.org", "Jonathan@example.org", ], (it) => it.replace("org", "com"), ], { "Kim@example.org": "Kim@example.com", "Lara@example.org": "Lara@example.com", "Jonathan@example.org": "Jonathan@example.com", }, ); associateWithTest<boolean>( [ [ "Kim", "Lara", "Jonathan", ], (it) => /m/.test(it), ], { "Kim": true, "Lara": false, "Jonathan": false, }, ); },});
Deno.test({ name: "[collections/associateWith] duplicate keys", fn() { associateWithTest( [ ["Kim", "Marija", "Karl", "Jonathan", "Marija"], (it) => it.charAt(0), ], { "Jonathan": "J", "Karl": "K", "Kim": "K", "Marija": "M", }, ); },});
std

Version Info

Tagged at
a year ago