TerrainGen coverage


terraingen/
Coverage:
low: ≥ 0%
medium: ≥ 75.0%
high: ≥ 90.0%
Lines:
21 / 21
100.0%
Branches:
27 / 27
100.0%
Functions:
2 / 2
100.0%

noise/validate.cpp
Line Branch Exec Source
1 #include "terraingen/noise/validate.h"
2
3 #include "terraingen/util/checks.h"
4
5 #include <cmath>
6 #include <stdexcept>
7
8 namespace terraingen {
9
10 103265 void ValidateFractalParams(const FractalParams& params) {
11
1/1
✓ Branch 2 taken 103261 times.
103265 RequirePositive(params.wavelength, "Fractal wavelength");
12
1/1
✓ Branch 2 taken 103260 times.
103261 RequireFinite(params.amplitude, "Fractal amplitude");
13
4/4
✓ Branch 0 taken 103253 times.
✓ Branch 1 taken 7 times.
✓ Branch 2 taken 1 time.
✓ Branch 3 taken 103252 times.
103260 if (params.octaves < 1 || params.octaves > 32) {
14
1/1
✓ Branch 2 taken 8 times.
8 throw std::invalid_argument("Fractal octaves must be between 1 and 32");
15 }
16
6/6
✓ Branch 1 taken 103251 times.
✓ Branch 2 taken 1 time.
✓ Branch 3 taken 1 time.
✓ Branch 4 taken 103250 times.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 103250 times.
103252 if (!(std::isfinite(params.lacunarity) && params.lacunarity > 1.0f)) {
17
1/1
✓ Branch 2 taken 2 times.
2 throw std::invalid_argument("Fractal lacunarity must be greater than 1 and finite");
18 }
19
1/1
✓ Branch 2 taken 103247 times.
103250 RequirePositive(params.gain, "Fractal gain");
20
2/2
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 103246 times.
103247 if (static_cast<std::uint32_t>(params.basis) >= kNoiseBasisCount) {
21
1/1
✓ Branch 2 taken 1 time.
1 throw std::invalid_argument("Unknown noise basis");
22 }
23
2/2
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 103245 times.
103246 if (static_cast<std::uint32_t>(params.type) >= kFractalTypeCount) {
24
1/1
✓ Branch 2 taken 1 time.
1 throw std::invalid_argument("Unknown fractal type");
25 }
26
1/1
✓ Branch 2 taken 103243 times.
103245 RequirePositive(params.offset, "Fractal offset");
27 103243 }
28
29 814 void ValidateNoiseLayer(const NoiseLayer& layer) {
30 814 ValidateFractalParams(layer.fractal);
31
2/2
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 806 times.
807 if (static_cast<std::uint32_t>(layer.blend) >= kLayerBlendCount) {
32
1/1
✓ Branch 2 taken 1 time.
1 throw std::invalid_argument("Unknown layer blend mode");
33 }
34
1/1
✓ Branch 2 taken 803 times.
806 RequireNonNegative(layer.warpAmplitude, "Warp amplitude");
35
1/1
✓ Branch 2 taken 802 times.
803 RequirePositive(layer.warpWavelength, "Warp wavelength");
36 802 }
37
38 } // namespace terraingen
39