From 72de0c56027dc827a59b799921a5a4bd8a4982ad Mon Sep 17 00:00:00 2001 From: parker Date: Thu, 10 Jul 2025 19:25:06 +0100 Subject: [PATCH] test: add benchmark --- CMakeLists.txt | 17 +++++++++++++++++ tests/Benchmarks.cpp | 43 ++++++++++++++++++++++++++++++++++++++++++ tests/NetworkTests.cpp | 1 + 3 files changed, 61 insertions(+) create mode 100644 tests/Benchmarks.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index c39f109..6534fad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,7 @@ set(CMAKE_CXX_STANDARD 17) # set exec names set(AppExec enzoGui) set(TestExec tests) +set(BenchExec bench) set(CMAKE_AUTORCC ON) # setup project @@ -81,3 +82,19 @@ add_executable(${TestExec} target_link_libraries(${TestExec} PRIVATE Catch2::Catch2WithMain Eigen3::Eigen Qt6::Core ) target_compile_definitions(${TestExec} PRIVATE UNIT_TEST) target_include_directories(${TestExec} PUBLIC src) + +# benchmarks +add_executable(${BenchExec} + tests/Benchmarks.cpp + + src/Engine/Operator/Attribute.cpp + src/Engine/Operator/Geometry.cpp + src/Engine/Operator/GeometryOperator.cpp + src/Engine/Network/NetworkManager.cpp + src/Engine/Operator/GeometryConnection.cpp + src/Engine/Operator/GeometryOpDef.cpp +) +target_link_libraries(${BenchExec} PRIVATE Catch2::Catch2WithMain Eigen3::Eigen Qt6::Core ) +target_compile_definitions(${BenchExec} PRIVATE UNIT_TEST) +target_include_directories(${BenchExec} PUBLIC src) + diff --git a/tests/Benchmarks.cpp b/tests/Benchmarks.cpp new file mode 100644 index 0000000..4e01578 --- /dev/null +++ b/tests/Benchmarks.cpp @@ -0,0 +1,43 @@ +#include +#include +#include +#include "Engine/Network/NetworkManager.h" +#include "Engine/Operator/GeometryOperator.h" +#include "Engine/Types.h" +#include + +struct NMReset +{ + NMReset() + { + enzo::nt::NetworkManager::_reset(); + } + ~NMReset() + { + enzo::nt::NetworkManager::_reset(); + } + +}; + +TEST_CASE_METHOD(NMReset, "Network Manager") +{ + using namespace enzo; + nt::OpId prevOp = 0; + for(int i=0; i<100; ++i){ + nt::OpId newOp = nt::NetworkManager::addOperator(); + if(prevOp!=0) + { + nt::connectOperators(newOp, 0, prevOp, 0); + } + + prevOp = newOp; + } + + nt::NetworkManager* nm = nt::NetworkManager::getInstance(); + BENCHMARK("Cook 100 Ops") + { + nm->setDisplayOp(prevOp); + }; + + +} diff --git a/tests/NetworkTests.cpp b/tests/NetworkTests.cpp index 012d074..a532a69 100644 --- a/tests/NetworkTests.cpp +++ b/tests/NetworkTests.cpp @@ -1,4 +1,5 @@ #include +#include #include #include "Engine/Network/NetworkManager.h" #include "Engine/Operator/GeometryOperator.h"