Skip to content

Commit b7666c2

Browse files
feat(2018 day-04): sort guards activities by timestamp
1 parent 4234dfb commit b7666c2

File tree

2 files changed

+40
-7
lines changed

2 files changed

+40
-7
lines changed

2018/day-04/guards.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1-
// var _data = []
1+
const helpers = require('./helpers')
22

33
const findLaziestGuards = (data) => {
44
let guards = []
55
return guards
66
}
77

8-
module.export = {
9-
findLaziestGuards
8+
const sortActivities = (data) => {
9+
return data.sort(helpers.dynamicSortMultiple('date', 'minute'))
10+
}
11+
12+
module.exports = {
13+
findLaziestGuards,
14+
sortActivities
1015
}

2018/day-04/guards.test.js

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,43 @@
11
/* eslint-env mocha */
22
const expect = require('chai').expect
3+
const helpers = require('./helpers')
34
const {
45
findLaziestGuard,
5-
findTimesGuardLikleyAsleep
6+
findTimesGuardLikleyAsleep,
7+
sortActivities
68
} = require('./guards')
79

10+
const testActivities = helpers.parseLog(`
11+
[1518-11-03 00:05] Guard #10 begins shift
12+
[1518-11-03 00:24] falls asleep
13+
[1518-11-03 00:29] wakes up
14+
[1518-11-04 00:02] Guard #99 begins shift
15+
[1518-11-04 00:36] falls asleep
16+
[1518-11-05 00:55] wakes up
17+
[1518-11-04 00:46] wakes up
18+
[1518-11-05 00:03] Guard #99 begins shift
19+
[1518-11-05 00:45] falls asleep
20+
[1518-11-01 00:00] Guard #10 begins shift
21+
[1518-11-01 00:05] falls asleep
22+
[1518-11-01 00:25] wakes up
23+
[1518-11-01 00:30] falls asleep
24+
[1518-11-01 00:55] wakes up
25+
[1518-11-01 23:58] Guard #99 begins shift
26+
[1518-11-02 00:40] falls asleep
27+
[1518-11-02 00:50] wakes up`)
28+
829
describe('--- Day 4: Repose Record ---', () => {
930
describe('Part 1', () => {
10-
describe('sortRecords()', () => {
11-
it.skip('sorts the sleep records by the timestamp', () => {
12-
31+
describe('sortActivities()', () => {
32+
it('sorts the activity records by the timestamp', () => {
33+
const expected = {
34+
activity: 'begins shift',
35+
date: '1518-11-01',
36+
guard: 10,
37+
minute: 0
38+
}
39+
const actual = sortActivities(testActivities)[0]
40+
expect(actual).to.deep.equal(expected)
1341
})
1442
})
1543

0 commit comments

Comments
 (0)