Skip to content
Snippets Groups Projects
Commit d53f4dea authored by Gregor Kobsik's avatar Gregor Kobsik
Browse files

decoupled test code from source code. upload without liked gtest to resolve...

decoupled test code from source code. upload without liked gtest to resolve transitive dependencies first
parent e91bc773
No related branches found
No related tags found
No related merge requests found
......@@ -2,34 +2,34 @@ stages:
- build
- test
linux-gcc-c++17_build:
stage: build
tags:
- Linux
variables:
GIT_SUBMODULE_STRATEGY: recursive
MAKE_OPTIONS: -j
COMPILER: gcc
LANGUAGE: C++17
BUILDDIR: build-release-gcc-cpp17
script:
- export CGAL_DIR=/usr/lib/x86_64-linux-gnu/cmake/CGAL
- chmod +rwx CI/ci-linux_build.sh
- CI/ci-linux_build.sh
artifacts:
expire_in: 24h
paths:
- $BUILDDIR
linux-gcc-c++17_test:
stage: test
tags:
- Linux
variables:
BUILDDIR: build-release-gcc-cpp17
script:
- cd $BUILDDIR
- ./unit_tests
#linux-gcc-c++17_build:
# stage: build
# tags:
# - Linux
# variables:
# GIT_SUBMODULE_STRATEGY: recursive
# MAKE_OPTIONS: -j
# COMPILER: gcc
# LANGUAGE: C++17
# BUILDDIR: build-release-gcc-cpp17
# script:
# - export CGAL_DIR=/usr/lib/x86_64-linux-gnu/cmake/CGAL
# - chmod +rwx CI/ci-linux_build.sh
# - CI/ci-linux_build.sh
# artifacts:
# expire_in: 24h
# paths:
# - $BUILDDIR
#
#linux-gcc-c++17_test:
# stage: test
# tags:
# - Linux
# variables:
# BUILDDIR: build-release-gcc-cpp17
# script:
# - cd $BUILDDIR
# - ./unit_tests
windows-win64-c++17_build:
stage: build
......@@ -41,7 +41,9 @@ windows-win64-c++17_build:
COMPILER: "VS2017"
SOLUTION_FILE: "TriangularInterpolant.sln"
BUILDDIR: "build"
script: "CI\\ci-windows_build.bat"
script:
#- setx CGAL_DIR "E:\libs\vs2017\x64\CGAL-4.13\lib\cmake\CGAL"
- "CI\\ci-windows_build.bat"
artifacts:
expire_in: 24h
......
......@@ -48,9 +48,16 @@ set STRING_ARCH=32-Bit
set GENERATOR=Visual Studio %VS_COMPILERVERSION_SHORT% %VS_EDITION_YEAR%%ARCH_VS%
set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio%VS_EDITION_PATH%\Common7\IDE\devenv.com"
:: set up Libraty Paths
set LIBPATH_BASE=E:\libs\%COMPILER%\%ARCHITECTURE%
set CMAKE_WINDOWS_LIBS_DIR=E:\libs
set CGAL_DIR=E:\libs\vs2017\x64\CGAL-4.13
set BOOST_DIR=E:\libs\vs2017\x64\boost_1_67_0
set PREFIX_PATH=%CGAL_DIR%;%BOOST_DIR%;
mkdir "build"
cd "build"
"C:\Program Files\CMake\bin\cmake.exe" -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=Release ..
"C:\Program Files\CMake\bin\cmake.exe" -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DCMAKE_WINDOWS_LIBS_DIR="%CMAKE_WINDOWS_LIBS_DIR%" -DCMAKE_PREFIX_PATH="%PREFIX_PATH%" ..
%VS_PATH% /Build "Release" %SOLUTION_FILE% /Project "ALL_BUILD"
\ No newline at end of file
......@@ -4,11 +4,11 @@ include(CMakePrintHelpers)
include(FetchContent)
include(GNUInstallDirs)
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.10.0
)
#FetchContent_Declare(
# gtest
# GIT_REPOSITORY https://github.com/google/googletest.git
# GIT_TAG release-1.10.0
#)
FetchContent_Declare(
glm
......@@ -32,11 +32,11 @@ FetchContent_Declare(
# todo: substitute if CMake 3.14+ available
# FetchContent_MakeAvailable(googletest glm openmesh)
FetchContent_GetProperties(googletest)
if(NOT googletest_POPULATED AND NOT TARGET googletest)
FetchContent_Populate(googletest)
add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR})
endif()
#FetchContent_GetProperties(gtest)
#if(NOT gtest_POPULATED AND NOT TARGET gtest)
# FetchContent_Populate(gtest)
# add_subdirectory(${gtest_SOURCE_DIR} ${gtest_BINARY_DIR})
#endif()
FetchContent_GetProperties(glm)
if(NOT glm_POPULATED AND NOT TARGET glm)
......@@ -104,27 +104,26 @@ set_target_properties(TriangularInterpolant PROPERTIES
SET (CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "/usr/lib/x86_64-linux-gnu/cmake/")
find_package(CGAL REQUIRED)
find_package(OpenMP REQUIRED)
find_package(OpenMesh)
target_include_directories(
TriangularInterpolant
PUBLIC
src
src/Geometry
PRIVATE
src/Utils
${openmesh_SOURCE_DIR}/src
PRIVATE
${googletest_SOURCE_DIR}/googletest/include
test
)
target_link_libraries(
TriangularInterpolant
PRIVATE
PUBLIC
glm::glm
OpenMeshCore
PRIVATE
CGAL::CGAL
OpenMeshCore
OpenMP::OpenMP_CXX
gtest
assimp
)
......@@ -137,13 +136,22 @@ install(FILES ${CMAKE_BINARY_DIR}/TriangularInterpolant.pc
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig)
# === GTEST ===
add_executable(TestTriangularInterpolant test/main.cc)
target_link_libraries(
TestTriangularInterpolant
PRIVATE
TriangularInterpolant
gtest
assimp
)
#
#add_executable(TestTriangularInterpolant test/main.cc)
#
#target_include_directories(
# TestTriangularInterpolant
# PRIVATE
# test
# test/Geometry
# test/Utils
# ${gtest_SOURCE_DIR}/googletest/include
#)
#
#target_link_libraries(
# TestTriangularInterpolant
# PRIVATE
# TriangularInterpolant
# gtest
# assimp
#)
This diff is collapsed.
#pragma once
#include "TriangularInterpolant2D.hh"
#include <gtest/gtest_prod.h>
//#include <gtest/gtest_prod.h>
#include <memory>
......@@ -93,7 +93,7 @@ public: //TEST_HELP_FUNCTIONS
);
// TESTS
/*
FRIEND_TEST(computeControlPointsXZPositions, Example1);
FRIEND_TEST(computeControlPointsXZPositions, Example2);
......@@ -115,4 +115,5 @@ public: //TEST_HELP_FUNCTIONS
FRIEND_TEST(computeCloughTocherInterpolant, Example3);
FRIEND_TEST(outputObjAndHeightMap, squaredFunction);
*/
};
#pragma once
#define _USE_MATH_DEFINES
#include <OpenMesh/Core/Mesh/PolyMesh_ArrayKernelT.hh>
......
......@@ -2,8 +2,6 @@
#include "Utils/GeometryFunc.hh"
#include "TriMeshCT.hh"
#include <gtest/gtest.h>
std::vector<OpenMesh::HalfedgeHandle>
TriMeshUtils::getTriangleHalfedgeHandles (
std::shared_ptr<TriMesh> mesh,
......
#include "TriangularInterpolant2D.hh"
#include <gtest/gtest.h>
......@@ -123,40 +123,3 @@ DeCasteljauAlgorithm::triangleBezierIndizies(
return indizies;
}
/// ############
/// ### TEST ###
/// ############
TEST(
createTriangleBezierIndizies,
NumberOfIndizies
)
{
EXPECT_EQ (1, DeCasteljauAlgorithm::triangleBezierIndizies(0).size());
EXPECT_EQ (3, DeCasteljauAlgorithm::triangleBezierIndizies(1).size());
EXPECT_EQ (6, DeCasteljauAlgorithm::triangleBezierIndizies(2).size());
EXPECT_EQ (10, DeCasteljauAlgorithm::triangleBezierIndizies(3).size());
EXPECT_EQ (15, DeCasteljauAlgorithm::triangleBezierIndizies(4).size());
}
TEST(
deCasteljauTriangle,
Example1
)
{
auto controlPoints = DeCasteljauAlgorithm::triangleBezierIndizies(2);
controlPoints[glm::vec3(2,0,0)] = glm::vec3(0,0,0);
controlPoints[glm::vec3(1,1,0)] = glm::vec3(1,0,2);
controlPoints[glm::vec3(0,2,0)] = glm::vec3(0,2,0);
controlPoints[glm::vec3(1,0,1)] = glm::vec3(0,1,0);
controlPoints[glm::vec3(0,1,1)] = glm::vec3(1,1,1);
controlPoints[glm::vec3(0,0,2)] = glm::vec3(0,2,1);
glm::vec2 uv = glm::vec2(0.5, 0.3333333333);
glm::vec3 pos = DeCasteljauAlgorithm::evaluateTriangle(controlPoints, 2, uv);
glm::vec3 expected_pos = glm::vec3(4. / 9., 5. / 9., 29. / 36.);
EXPECT_FLOAT_EQ(expected_pos.x, pos.x);
EXPECT_FLOAT_EQ(expected_pos.y, pos.y);
EXPECT_FLOAT_EQ(expected_pos.z, pos.z);
}
#pragma once
#include "gtest/gtest.h"
//#include "gtest/gtest_prod.h"
#include "TriMesh.hh"
#include <glm/vec2.hpp>
......@@ -35,9 +35,10 @@ private:
int degree);
// TESTS
/*
FRIEND_TEST(createTriangleBezierIndizies, NumberOfIndizies);
FRIEND_TEST(deCasteljauTriangle, Example1);
*/
};
#include "GeometryFunc.hh"
#include <glm/geometric.hpp>
/// ##############
......@@ -135,88 +134,3 @@ GeometryFunc::isPointInTriangle2D(
baryCoords.z >= 0.0 &&
baryCoords.z <= 1.0);
}
\ No newline at end of file
/// ############
/// ### TEST ###
/// ############
TEST(
computeHeight3Point,
Example1
)
{
float height = GeometryFunc::computeHeight3Point(
glm::vec3(2,0,6),
glm::vec3(-7,0,4),
glm::vec3(2,0,1),
glm::vec3(1,0,1));
EXPECT_FLOAT_EQ(height, 0.0f);
}
TEST(
computeHeight3Point,
Example2
)
{
float height = GeometryFunc::computeHeight3Point(
glm::vec3(0,3,6),
glm::vec3(3,0,1),
glm::vec3(2,1,5),
glm::vec3(1,0,7));
EXPECT_FLOAT_EQ(height, 2.0f);
}
TEST(
computeHeightPointNormal,
Example1
)
{
float height = GeometryFunc::computeHeightPointNormal(
glm::vec3(0,1,0),
glm::vec3(0,1,0),
glm::vec3(3,0,4));
#include "gtest/gtest.h"
EXPECT_FLOAT_EQ(height, 1.0f);
}
TEST(
computeHeightPointNormal,
Example2
)
{
float height = GeometryFunc::computeHeightPointNormal(
glm::vec3(2,1,0),
glm::vec3(0.70710678118,0.70710678118,0),
glm::vec3(2,0,7));
EXPECT_FLOAT_EQ(height, 1.0f);
}
TEST(
computeBarycentricCoords,
Example1
)
{
glm::vec2 uv = GeometryFunc::computeBarycentricCoords(
glm::vec2(2.5, 1),
glm::vec2(1, 4),
glm::vec2(1, 1),
glm::vec2(4, 1));
EXPECT_FLOAT_EQ(uv[0], 0.0f);
EXPECT_FLOAT_EQ(uv[1], 0.5f);
}
TEST(
computeBarycentricCoords,
Example2
)
{
glm::vec2 uv = GeometryFunc::computeBarycentricCoords(
glm::vec2(3, 3),
glm::vec2(3, 5),
glm::vec2(1, 2),
glm::vec2(6, 2));
EXPECT_FLOAT_EQ(uv[0], 0.333333333f);
}
#pragma once
#include "gtest/gtest.h"
#include <vector>
#include <iterator>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment