aboutsummaryrefslogtreecommitdiff
path: root/bench/tests/BenchLine.c
diff options
context:
space:
mode:
Diffstat (limited to 'bench/tests/BenchLine.c')
-rw-r--r--bench/tests/BenchLine.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/bench/tests/BenchLine.c b/bench/tests/BenchLine.c
new file mode 100644
index 0000000..bbef886
--- /dev/null
+++ b/bench/tests/BenchLine.c
@@ -0,0 +1,55 @@
+#include "BH/Bench.h"
+#include "BH/Math/Line.h"
+
+
+static float pointA[2] = {1.0f, 2.0f};
+static float pointB[2] = {4.0f, 6.0f};
+static float lineNormal[3] = {3.0f, -4.0f, 5.0f};
+static float outLine[3];
+static float outPoint[2];
+
+
+BH_BENCH_TEST(FromPoints)
+{
+ while (BH_BenchIter(state))
+ {
+ int result;
+ result = BH_LineFromPoints(pointA, pointB, outLine);
+ BH_BenchDoNotOptimize(result);
+ BH_BenchDoNotOptimize(outLine);
+ }
+}
+
+
+BH_BENCH_TEST(Distance)
+{
+ while (BH_BenchIter(state))
+ {
+ float result;
+ result = BH_LineDistance(lineNormal, pointA);
+ BH_BenchDoNotOptimize(result);
+ }
+}
+
+
+BH_BENCH_TEST(ClosestPoint)
+{
+ while (BH_BenchIter(state))
+ {
+ BH_LineClosestPoint(lineNormal, pointA, outPoint);
+ BH_BenchDoNotOptimize(outPoint);
+ }
+}
+
+
+int main(int argc, char **argv)
+{
+ BH_UNUSED(argc);
+ BH_UNUSED(argv);
+
+ BH_BENCH_ADD(FromPoints);
+ BH_BENCH_ADD(Distance);
+ BH_BENCH_ADD(ClosestPoint);
+
+ return BH_BenchRun();
+}