blob: 1d817220e1582b3fbebcbdb0553229a788873d4c (
plain)
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
|
#include <mbgl/test/util.hpp>
#include <mbgl/geometry/line_atlas.hpp>
#include <random>
using namespace mbgl;
TEST(LineAtlas, Random) {
std::mt19937 generator(42); // Use the same seed for reproducible tests.
std::uniform_int_distribution<size_t> countDistribution(0, 12);
std::uniform_int_distribution<size_t> capStyleDistribution(0, 1);
std::normal_distribution<float> lengthDistribution(3, 5);
for (size_t it = 0; it < 100; it++) {
LineAtlas atlas;
std::vector<float> dasharray;
dasharray.reserve(8);
for (size_t j = 0; j < 100; j++) {
dasharray.resize(0);
const size_t count = countDistribution(generator);
for (size_t i = 0; i < count; i++) {
dasharray.push_back(lengthDistribution(generator));
}
const LinePatternCap patternCap =
capStyleDistribution(generator) > 0 ? LinePatternCap::Round : LinePatternCap::Square;
atlas.getDashPatternTexture(dasharray, dasharray, patternCap);
}
}
}
|