worked on wifi-scanner for linux
new time-grouping for vap grouper adjusted test-cases minor changes/fixes/improvements
This commit is contained in:
@@ -52,4 +52,35 @@ TEST(Timestamp, add) {
|
||||
|
||||
}
|
||||
|
||||
TEST(Timestamp, div) {
|
||||
|
||||
Timestamp ts1 = Timestamp::fromMS(1000);
|
||||
|
||||
ASSERT_EQ(100, (ts1/(size_t)10).ms());
|
||||
|
||||
}
|
||||
|
||||
TEST(Timestamp, minmax) {
|
||||
|
||||
Timestamp tsLow = std::numeric_limits<Timestamp>::lowest();
|
||||
|
||||
|
||||
Timestamp tsMin = std::numeric_limits<Timestamp>::min();
|
||||
Timestamp tsMax = std::numeric_limits<Timestamp>::max();
|
||||
Timestamp ts0 = Timestamp::fromMS(0);
|
||||
Timestamp tsNeg = Timestamp::fromMS(-99999999999999L);
|
||||
Timestamp tsPos = Timestamp::fromMS(+99999999999999L);
|
||||
|
||||
ASSERT_EQ(tsMin, tsLow);
|
||||
|
||||
ASSERT_TRUE(tsMin < tsMax);
|
||||
ASSERT_TRUE(tsMin < ts0);
|
||||
ASSERT_TRUE(tsMin < tsNeg);
|
||||
|
||||
ASSERT_TRUE(tsMax > tsMin);
|
||||
ASSERT_TRUE(tsMax > ts0);
|
||||
ASSERT_TRUE(tsMax > tsPos);
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -38,9 +38,9 @@ TEST(WiFiVAPGrouper, baseMAC) {
|
||||
|
||||
TEST(WiFiVAPGrouper, aggregation) {
|
||||
|
||||
VAPGrouper vgAvg(VAPGrouper::Mode::LAST_MAC_DIGIT_TO_ZERO, VAPGrouper::Aggregation::AVERAGE);
|
||||
VAPGrouper vgMedian(VAPGrouper::Mode::LAST_MAC_DIGIT_TO_ZERO, VAPGrouper::Aggregation::MEDIAN);
|
||||
VAPGrouper vgMax(VAPGrouper::Mode::LAST_MAC_DIGIT_TO_ZERO, VAPGrouper::Aggregation::MAXIMUM);
|
||||
VAPGrouper vgAvg(VAPGrouper::Mode::LAST_MAC_DIGIT_TO_ZERO, VAPGrouper::Aggregation::AVERAGE, VAPGrouper::TimeAggregation::AVERAGE);
|
||||
VAPGrouper vgMedian(VAPGrouper::Mode::LAST_MAC_DIGIT_TO_ZERO, VAPGrouper::Aggregation::MEDIAN, VAPGrouper::TimeAggregation::MINIMUM);
|
||||
VAPGrouper vgMax(VAPGrouper::Mode::LAST_MAC_DIGIT_TO_ZERO, VAPGrouper::Aggregation::MAXIMUM, VAPGrouper::TimeAggregation::MAXIMUM);
|
||||
|
||||
WiFiMeasurements scan;
|
||||
|
||||
@@ -59,7 +59,7 @@ TEST(WiFiVAPGrouper, aggregation) {
|
||||
|
||||
scan.entries.push_back(WiFiMeasurement(vap20, -69, Timestamp::fromMS(22)));
|
||||
scan.entries.push_back(WiFiMeasurement(vap21, -61, Timestamp::fromMS(25)));
|
||||
scan.entries.push_back(WiFiMeasurement(vap22, -62, Timestamp::fromMS(23)));
|
||||
scan.entries.push_back(WiFiMeasurement(vap22, -62, Timestamp::fromMS(21)));
|
||||
scan.entries.push_back(WiFiMeasurement(vap23, -60, Timestamp::fromMS(20)));
|
||||
|
||||
const WiFiMeasurements gAvg = vgAvg.group(scan);
|
||||
@@ -71,26 +71,73 @@ TEST(WiFiVAPGrouper, aggregation) {
|
||||
ASSERT_EQ(2, gMedian.entries.size());
|
||||
ASSERT_EQ(2, gMax.entries.size());
|
||||
|
||||
// correct average values?
|
||||
// correct average rssi / average timestamp?
|
||||
ASSERT_EQ(-72, gAvg.entries.back().getRSSI());
|
||||
ASSERT_EQ(-63, gAvg.entries.front().getRSSI());
|
||||
ASSERT_EQ(Timestamp::fromMS(11), gAvg.entries.back().getTimestamp());
|
||||
ASSERT_EQ(Timestamp::fromMS(22), gAvg.entries.front().getTimestamp());
|
||||
ASSERT_EQ(Timestamp::fromMS(12), gAvg.entries.back().getTimestamp()); // average ts
|
||||
ASSERT_EQ(Timestamp::fromMS(22), gAvg.entries.front().getTimestamp()); // average ts
|
||||
|
||||
// correct median values?
|
||||
// correct median rssi / min timestamp?
|
||||
ASSERT_EQ(-71, gMedian.entries.back().getRSSI());
|
||||
ASSERT_EQ(-61.5, gMedian.entries.front().getRSSI());
|
||||
ASSERT_EQ(Timestamp::fromMS(11), gMedian.entries.back().getTimestamp());
|
||||
ASSERT_EQ(Timestamp::fromMS(22), gMedian.entries.front().getTimestamp());
|
||||
ASSERT_EQ(Timestamp::fromMS(11), gMedian.entries.back().getTimestamp()); // min ts
|
||||
ASSERT_EQ(Timestamp::fromMS(20), gMedian.entries.front().getTimestamp()); // min ts
|
||||
|
||||
// correct max values?
|
||||
// correct max rssi / max timestamp?
|
||||
ASSERT_EQ(-70, gMax.entries.back().getRSSI());
|
||||
ASSERT_EQ(-60, gMax.entries.front().getRSSI());
|
||||
ASSERT_EQ(Timestamp::fromMS(11), gMax.entries.back().getTimestamp());
|
||||
ASSERT_EQ(Timestamp::fromMS(22), gMax.entries.front().getTimestamp());
|
||||
ASSERT_EQ(Timestamp::fromMS(13), gMax.entries.back().getTimestamp()); // max ts
|
||||
ASSERT_EQ(Timestamp::fromMS(25), gMax.entries.front().getTimestamp()); // max ts
|
||||
|
||||
|
||||
}
|
||||
|
||||
TEST(WiFiVAPGrouper, aggregationTS) {
|
||||
|
||||
VAPGrouper vgAvg(VAPGrouper::Mode::LAST_MAC_DIGIT_TO_ZERO, VAPGrouper::Aggregation::AVERAGE, VAPGrouper::TimeAggregation::AVERAGE);
|
||||
VAPGrouper vgMedian(VAPGrouper::Mode::LAST_MAC_DIGIT_TO_ZERO, VAPGrouper::Aggregation::MEDIAN, VAPGrouper::TimeAggregation::MINIMUM);
|
||||
VAPGrouper vgMax(VAPGrouper::Mode::LAST_MAC_DIGIT_TO_ZERO, VAPGrouper::Aggregation::MAXIMUM, VAPGrouper::TimeAggregation::MAXIMUM);
|
||||
|
||||
WiFiMeasurements scan;
|
||||
|
||||
const AccessPoint vap0("01:bb:cc:dd:11:a0");
|
||||
const AccessPoint vap1("01:bb:cc:dd:11:a1");
|
||||
const AccessPoint vap2("01:bb:cc:dd:11:a2");
|
||||
const AccessPoint vap3("01:bb:cc:dd:11:a3");
|
||||
const AccessPoint vap4("01:bb:cc:dd:11:a4");
|
||||
const AccessPoint vap5("01:bb:cc:dd:11:a5");
|
||||
const AccessPoint vap6("01:bb:cc:dd:11:a6");
|
||||
const AccessPoint vap7("01:bb:cc:dd:11:a7");
|
||||
const AccessPoint vap8("01:bb:cc:dd:11:a8");
|
||||
|
||||
Timestamp base = Timestamp::fromUnixTime();
|
||||
|
||||
scan.entries.push_back(WiFiMeasurement(vap0, -1, base+Timestamp::fromMS(1)));
|
||||
scan.entries.push_back(WiFiMeasurement(vap1, -2, base+Timestamp::fromMS(2)));
|
||||
scan.entries.push_back(WiFiMeasurement(vap2, -3, base+Timestamp::fromMS(3)));
|
||||
scan.entries.push_back(WiFiMeasurement(vap3, -4, base+Timestamp::fromMS(4)));
|
||||
scan.entries.push_back(WiFiMeasurement(vap4, -5, base+Timestamp::fromMS(5)));
|
||||
scan.entries.push_back(WiFiMeasurement(vap5, -6, base+Timestamp::fromMS(6)));
|
||||
scan.entries.push_back(WiFiMeasurement(vap6, -7, base+Timestamp::fromMS(7)));
|
||||
scan.entries.push_back(WiFiMeasurement(vap7, -8, base+Timestamp::fromMS(8)));
|
||||
scan.entries.push_back(WiFiMeasurement(vap8, -9, base+Timestamp::fromMS(9)));
|
||||
|
||||
const WiFiMeasurements gAvg = vgAvg.group(scan);
|
||||
const WiFiMeasurements gMedian = vgMedian.group(scan);
|
||||
const WiFiMeasurements gMax = vgMax.group(scan);
|
||||
|
||||
// correct average rssi / average timestamp?
|
||||
ASSERT_EQ(-5, gAvg.entries.back().getRSSI());
|
||||
ASSERT_EQ(base+Timestamp::fromMS(5), gAvg.entries.front().getTimestamp());
|
||||
|
||||
// correct median rssi / min timestamp?
|
||||
ASSERT_EQ(-5, gMedian.entries.back().getRSSI());
|
||||
ASSERT_EQ(base+Timestamp::fromMS(1), gMedian.entries.back().getTimestamp()); // min ts
|
||||
|
||||
// correct max rssi / max timestamp?
|
||||
ASSERT_EQ(-1, gMax.entries.back().getRSSI());
|
||||
ASSERT_EQ(base+Timestamp::fromMS(9), gMax.entries.back().getTimestamp()); // max ts
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user