summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVasile Vilvoiu <vasi@vilvoiu.ro>2021-07-22 21:11:43 +0300
committerVasile Vilvoiu <vasi@vilvoiu.ro>2021-07-22 21:11:43 +0300
commitbb54f97810284770f827af6d3d6f9417d8d318ca (patch)
tree1f5173097c23ce6a9fdd4cd94353c1a97830aaba
parentaa91ba3ab50320d9f3cf9b41a68d9c001f769df6 (diff)
Handle very small axes, when no nice value is found.
Fixes #23.
-rw-r--r--src/renderer.cpp8
-rw-r--r--test/test-renderer.cpp3
2 files changed, 9 insertions, 2 deletions
diff --git a/src/renderer.cpp b/src/renderer.cpp
index 4337bbf..5285c63 100644
--- a/src/renderer.cpp
+++ b/src/renderer.cpp
@@ -381,8 +381,12 @@ Renderer::GetNiceTicks(double v_min, double v_max, const std::string& v_unit, un
fval = std::floor(fval) + 1.0f;
}
fval *= factor;
- assert(v_min <= fval);
- assert(fval <= v_max);
+
+ if ((fval < v_min) || (fval > v_max)) {
+ /* there is no nice value here; usually this happens because the
+ * axis length is too small */
+ return v_min;
+ }
return fval;
};
diff --git a/test/test-renderer.cpp b/test/test-renderer.cpp
index 7a091d9..d6b4284 100644
--- a/test/test-renderer.cpp
+++ b/test/test-renderer.cpp
@@ -166,6 +166,9 @@ TEST(TestRenderer, GetNiceTicks)
/* first nice value */
{-300.0, 3000.0, "V", 200, 120, false, { {1.0/10.0, "0kV"}, {7.0/10.0, "2kV"} } },
+ /* Issue #23 */
+ {1.0, 100.0, "", 3, 50, false, { {0.02, "1"} } },
+
/* Issue #26 */
{-70.0, -20.0, "dBFS", 907, 50, false, { {0.02, "-69dBFS"}, {0.08, "-66dBFS"}, {0.14, "-63dBFS"}, {0.2, "-60dBFS"}, {0.26, "-57dBFS"}, {0.32, "-54dBFS"}, {0.38, "-51dBFS"}, {0.44, "-48dBFS"}, {0.50, "-45dBFS"}, {0.56, "-42dBFS"}, {0.62, "-39dBFS"}, {0.68, "-36dBFS"}, {0.74, "-33dBFS"}, {0.80, "-30dBFS"}, {0.86, "-27dBFS"}, {0.92, "-24dBFS"}, {0.98, "-21dBFS"} } },
{-70.0, 0.0, "dBFS", 907, 50, false, { {0.0/14.0, "-70dBFS"}, {1.0/14.0, "-65dBFS"}, {2.0/14.0, "-60dBFS"}, {3.0/14.0, "-55dBFS"}, {4.0/14.0, "-50dBFS"}, {5.0/14.0, "-45dBFS"}, {6.0/14.0, "-40dBFS"}, {7.0/14.0, "-35dBFS"}, {8.0/14.0, "-30dBFS"}, {9.0/14.0, "-25dBFS"}, {10.0/14.0, "-20dBFS"}, {11.0/14.0, "-15dBFS"}, {12.0/14.0, "-10dBFS"}, {13.0/14.0, "-5dBFS"}, {14.0/14.0, "0dBFS"} } },