Skip to content

Commit 8b05908

Browse files
author
sungryong.park
committed
[#88] ✅ add test
1 parent 99b3687 commit 8b05908

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

src/sortBy.bench.ts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
import _sortBy from 'lodash/sortBy'
2+
import {bench, describe} from 'vitest'
3+
4+
import {sortBy} from './sortBy'
5+
6+
const ITERATIONS = 100
7+
8+
interface User {
9+
user: string
10+
age: number
11+
}
12+
13+
const USERS_SMALL: User[] = [
14+
{user: 'ChengJha', age: 48},
15+
{user: 'JoelSaad', age: 36},
16+
{user: 'RaulIsmail', age: 40},
17+
{user: 'VeraSaeed', age: 45},
18+
{user: 'RobertoRamos', age: 28},
19+
{user: 'OscarWatanabe', age: 21},
20+
{user: 'AnnXiang', age: 25},
21+
]
22+
23+
const USERS_BIG: User[] = Array.from({length: 1000}, (_, i) => ({
24+
user: 'user' + (i % 100),
25+
age: Math.floor(Math.random() * 100),
26+
}))
27+
28+
const USERS_HUGE: User[] = Array.from({length: 10_000}, (_) => ({
29+
user: 'randomUser' + Math.floor(Math.random() * 1000),
30+
age: Math.floor(Math.random() * 1000),
31+
}))
32+
33+
const USERS_MULTI: User[] = [
34+
{user: 'barney', age: 36},
35+
{user: 'fred', age: 48},
36+
{user: 'wilma', age: 40},
37+
{user: 'wilma', age: 36},
38+
{user: 'betty', age: 36},
39+
{user: 'barney', age: 34},
40+
{user: 'fred', age: 48},
41+
{user: 'betty', age: 40},
42+
] as const
43+
44+
const testCases = [
45+
{data: USERS_SMALL, iteratees: ['age']},
46+
{data: USERS_SMALL, iteratees: [(o: User) => o.user]},
47+
{data: USERS_BIG, iteratees: ['user']},
48+
{data: USERS_BIG, iteratees: [(o: User) => o.age]},
49+
{data: USERS_HUGE, iteratees: ['age']},
50+
{data: USERS_MULTI, iteratees: ['user', 'age']},
51+
{data: USERS_MULTI, iteratees: ['user', (o: User) => o.age]},
52+
] as const
53+
describe('sortBy performance', () => {
54+
bench('hidash sortBy', () => {
55+
for (let i = 0; i < ITERATIONS; i++) {
56+
for (const {data, iteratees} of testCases) {
57+
sortBy(data, ...iteratees)
58+
}
59+
}
60+
})
61+
62+
bench('lodash sortBy', () => {
63+
for (let i = 0; i < ITERATIONS; i++) {
64+
for (const {data, iteratees} of testCases) {
65+
_sortBy(data, ...iteratees)
66+
}
67+
}
68+
})
69+
})

0 commit comments

Comments
 (0)