This repository was archived by the owner on Oct 14, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 141
Expand file tree
/
Copy pathcpp.yml
More file actions
90 lines (80 loc) · 2.02 KB
/
Copy pathcpp.yml
File metadata and controls
90 lines (80 loc) · 2.02 KB
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
igloo:
algorithms:
initial: |-
#include <list>
using namespace std;
// return the two oldest/oldest ages within the array of ages passed in.
// it should return the two ages as a sorted array, youngest age first
list<int> two_oldest_ages(list<int> ages) {
}
answer: |-
#include <list>
#include <iostream>
using namespace std;
list<int> two_oldest_ages(list<int> ages) {
int oldest = 0, nextOldest;
for(auto& age:ages) {
if(age > oldest) {
nextOldest = oldest;
oldest = age;
}
else if(age > nextOldest) {
nextOldest = age;
}
}
return list<int> {nextOldest, oldest};
}
fixture: |-
list<int> results = two_oldest_ages({ 1, 5, 87, 45, 8, 8 });
Describe(two_oldest_ages_test)
{
It(should_return_the_oldest)
{
Assert::That(results.front(), Equals(45));
}
It(thing_inherit_from_base)
{
Assert::That(results.back(), Equals(87));
}
};
bug fixes:
initial: |-
struct Entity {
int run() {
return speed;
}
int speed = 5;
};
// TODO: player.run() returning 5 instead of 10!
struct Player: public Entity {
int speed = 10;
};
answer: |-
struct Entity {
int run() {
return speed();
}
virtual int speed() {
return 5;
}
};
struct Player: public Entity {
virtual int speed() {
return 10;
}
};
fixture: |-
Entity e;
Player p;
Describe(entity)
{
It(should_run_at_speed_5) {
Assert::That(e.run(), Equals(5));
}
};
Describe(player)
{
It(should_run_at_speed_10) {
Assert::That(p.run(), Equals(10));
}
};