-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_dataset.cpp
More file actions
83 lines (65 loc) · 2.12 KB
/
test_dataset.cpp
File metadata and controls
83 lines (65 loc) · 2.12 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
// COMP2811 Coursework 1: tests for QuakeDataset class
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#include "doctest.h"
#include "dataset.hpp"
TEST_CASE("Empty dataset") {
QuakeDataset data;
SUBCASE("size() is 0") {
CHECK(data.size() == 0);
}
SUBCASE("Exception when accessing quake at index 0") {
CHECK_THROWS(data[0]);
}
SUBCASE("Exception when requesting strongest quake") {
CHECK_THROWS(data.strongest());
}
SUBCASE("Exception when requesting shallowest quake") {
CHECK_THROWS(data.shallowest());
}
SUBCASE("Exception when requesting mean magnitude") {
CHECK_THROWS(data.meanMagnitude());
}
SUBCASE("Exception when requesting mean depth") {
CHECK_THROWS(data.meanDepth());
}
}
TEST_CASE("test0.csv") {
QuakeDataset data("../data/test0.csv");
SUBCASE("size() is 0") {
CHECK(data.size() == 0);
}
}
TEST_CASE("test10.csv") {
QuakeDataset data("../data/test10.csv");
SUBCASE("size() is 10") {
CHECK(data.size() == 10);
}
SUBCASE("Correct details for first quake") {
Quake q = data[0];
CHECK(q.getTime() == "2022-08-02T21:11:41.381Z");
CHECK(q.getLatitude() == doctest::Approx(-18.1158));
CHECK(q.getLongitude() == doctest::Approx(-178.202));
CHECK(q.getDepth() == doctest::Approx(521.281));
CHECK(q.getMagnitude() == doctest::Approx(5.6));
}
SUBCASE("Correct details for last quake") {
Quake q = data[9];
CHECK(q.getTime() == "2022-08-02T00:42:56.247Z");
CHECK(q.getLatitude() == doctest::Approx(-3.1388));
CHECK(q.getLongitude() == doctest::Approx(148.457));
CHECK(q.getDepth() == doctest::Approx(10));
CHECK(q.getMagnitude() == doctest::Approx(4.7));
}
SUBCASE("Strongest quake identified correctly") {
CHECK(data.strongest().getTime() == "2022-08-02T21:11:41.381Z");
}
SUBCASE("Shallowest quake identified correctly") {
CHECK(data.shallowest().getTime() == "2022-08-02T15:17:01.461Z");
}
SUBCASE("meanDepth() is close to 127.058") {
CHECK(data.meanDepth() == doctest::Approx(127.058));
}
SUBCASE("meanMagnitude() is close to 5.08") {
CHECK(data.meanMagnitude() == doctest::Approx(5.08));
}
}