mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
(#687) Moved tests from ModelVisualization into ApplicationCode/UnitTests
This commit is contained in:
@@ -1,71 +0,0 @@
|
||||
cmake_minimum_required (VERSION 2.8)
|
||||
|
||||
SET (ProjectName ModelVisualization_UnitTests)
|
||||
project ( ${ProjectName} )
|
||||
|
||||
include_directories(
|
||||
${LibCore_SOURCE_DIR}
|
||||
${LibGeometry_SOURCE_DIR}
|
||||
${LibRender_SOURCE_DIR}
|
||||
${LibViewing_SOURCE_DIR}
|
||||
|
||||
${ResInsight_SOURCE_DIR}/ThirdParty
|
||||
|
||||
${ResInsight_SOURCE_DIR}/ApplicationCode/ModelVisualization
|
||||
|
||||
${CommonCode_SOURCE_DIR}
|
||||
)
|
||||
|
||||
set( MODEL_VISUALIZATION_CPP_SOURCES
|
||||
../RivPipeGeometryGenerator.cpp
|
||||
../RivTernaryScalarMapper.cpp
|
||||
)
|
||||
|
||||
|
||||
set( CPP_SOURCES
|
||||
${MODEL_VISUALIZATION_CPP_SOURCES}
|
||||
)
|
||||
|
||||
set( UNIT_TEST_CPP_SOURCES
|
||||
main.cpp
|
||||
RivPipeGeometryGenerator-Test.cpp
|
||||
RivTernaryScalarMapper-Test.cpp
|
||||
)
|
||||
|
||||
|
||||
set( LINK_LIBRARIES
|
||||
LibViewing
|
||||
LibRender
|
||||
LibGeometry
|
||||
LibCore
|
||||
LibGuiQt
|
||||
|
||||
CommonCode
|
||||
|
||||
${OPENGL_LIBRARIES}
|
||||
${QT_LIBRARIES}
|
||||
|
||||
)
|
||||
|
||||
|
||||
add_executable( ${ProjectName}
|
||||
${CPP_SOURCES}
|
||||
${UNIT_TEST_CPP_SOURCES}
|
||||
|
||||
${ResInsight_SOURCE_DIR}/ThirdParty/gtest/gtest-all.cc
|
||||
)
|
||||
|
||||
|
||||
IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
set( EXTERNAL_LINK_LIBRARIES
|
||||
pthread
|
||||
)
|
||||
ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set( CMAKE_CXX_FLAGS
|
||||
"-DGTEST_USE_OWN_TR1_TUPLE=1"
|
||||
)
|
||||
ENDIF()
|
||||
|
||||
target_link_libraries( ${ProjectName} ${LINK_LIBRARIES} ${EXTERNAL_LINK_LIBRARIES})
|
||||
|
||||
|
||||
@@ -1,105 +0,0 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2011-2012 Statoil ASA, Ceetron AS
|
||||
//
|
||||
// ResInsight is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
||||
// for more details.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
#include "cvfLibCore.h"
|
||||
#include "cvfLibViewing.h"
|
||||
#include "cvfLibRender.h"
|
||||
#include "cvfLibGeometry.h"
|
||||
|
||||
#include "RivPipeGeometryGenerator.h"
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
cvf::ref<cvf::Vec3dArray> buildPipeCoords()
|
||||
{
|
||||
cvf::ref<cvf::Vec3dArray> coords = new cvf::Vec3dArray;
|
||||
coords->resize(10);
|
||||
|
||||
// Two identical at start
|
||||
coords->set(0, cvf::Vec3d(10, 10, 10));
|
||||
coords->set(1, cvf::Vec3d(10, 10, 10));
|
||||
|
||||
// 180 degree
|
||||
coords->set(2, cvf::Vec3d(12, 20, 10));
|
||||
coords->set(3, cvf::Vec3d(13, 20, 20));
|
||||
coords->set(4, cvf::Vec3d(13, 20, 20));
|
||||
coords->set(5, cvf::Vec3d(12, 20, 10));
|
||||
|
||||
//coords->set(5, cvf::Vec3d(15, 10, 10));
|
||||
coords->set(6, cvf::Vec3d(16, 10, 10));
|
||||
coords->set(7, cvf::Vec3d(17, 10, 10));
|
||||
|
||||
// Two identical at end
|
||||
coords->set(8, cvf::Vec3d(18, 10, 10));
|
||||
coords->set(9, cvf::Vec3d(18, 10, 10));
|
||||
|
||||
return coords;
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
TEST(ModelVisualizationTest, AllPartsInputTest)
|
||||
{
|
||||
cvf::ref<cvf::Vec3dArray> coords = new cvf::Vec3dArray;
|
||||
RivPipeGeometryGenerator gen;
|
||||
|
||||
// Set empty coords array
|
||||
gen.setPipeCenterCoords(coords.p());
|
||||
{
|
||||
cvf::ref<cvf::DrawableGeo> geo = gen.createPipeSurface();
|
||||
EXPECT_TRUE(geo.isNull());
|
||||
}
|
||||
|
||||
coords->resize(2);
|
||||
coords->set(0, cvf::Vec3d(10, 10, 10));
|
||||
coords->set(1, cvf::Vec3d(10, 10, 10));
|
||||
|
||||
gen.setPipeCenterCoords(coords.p());
|
||||
{
|
||||
cvf::ref<cvf::DrawableGeo> geo = gen.createPipeSurface();
|
||||
EXPECT_TRUE(geo.isNull());
|
||||
}
|
||||
|
||||
coords->set(1, cvf::Vec3d(10, 10, 20));
|
||||
gen.setPipeCenterCoords(coords.p());
|
||||
{
|
||||
cvf::ref<cvf::DrawableGeo> geo = gen.createPipeSurface();
|
||||
EXPECT_TRUE(geo.notNull());
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
TEST(ModelVisualizationTest, PipeGeometryTest)
|
||||
{
|
||||
cvf::ref<cvf::Vec3dArray> coords = buildPipeCoords();
|
||||
|
||||
RivPipeGeometryGenerator gen;
|
||||
gen.setPipeCenterCoords(coords.p());
|
||||
gen.createPipeSurface();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,106 +0,0 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) Statoil ASA
|
||||
// Copyright (C) Ceetron Solutions AS
|
||||
//
|
||||
// ResInsight is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
||||
// for more details.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
#include "RivTernaryScalarMapper.h"
|
||||
|
||||
#include "cvfTextureImage.h"
|
||||
#include "cvfqtUtils.h"
|
||||
|
||||
#include <QImage>
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
TEST(TernaryScalarMapperTest, BasicFunctions)
|
||||
{
|
||||
cvf::ref<RivTernaryScalarMapper> scalarMapper = new RivTernaryScalarMapper(cvf::Color3f::GRAY);
|
||||
|
||||
cvf::ref<cvf::TextureImage> texImage = new cvf::TextureImage;
|
||||
scalarMapper->updateTexture(texImage.p(), 1.0);
|
||||
|
||||
QImage img = cvfqt::Utils::toQImage(*(texImage.p()));
|
||||
|
||||
img.save("c:/tmp/test.png");
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
TEST(TernaryScalarMapperTest, TextureMapping)
|
||||
{
|
||||
cvf::ref<RivTernaryScalarMapper> scalarMapper = new RivTernaryScalarMapper(cvf::Color3f::GRAY);
|
||||
|
||||
// See RivTernaryScalarMapper::mapToTextureCoord
|
||||
double edgeClampDelta = 1.1 * 0.001;
|
||||
|
||||
// Without opacity
|
||||
{
|
||||
cvf::Vec2f texCoord = scalarMapper->mapToTextureCoord(0.0, 0.0, false);
|
||||
EXPECT_NEAR(0.0, texCoord.x(), edgeClampDelta);
|
||||
EXPECT_NEAR(0.0, texCoord.y(), edgeClampDelta);
|
||||
}
|
||||
|
||||
{
|
||||
cvf::Vec2f texCoord = scalarMapper->mapToTextureCoord(1.0, 0.0, false);
|
||||
EXPECT_NEAR(1.0, texCoord.x(), edgeClampDelta);
|
||||
EXPECT_NEAR(0.0, texCoord.y(), edgeClampDelta);
|
||||
}
|
||||
|
||||
{
|
||||
cvf::Vec2f texCoord = scalarMapper->mapToTextureCoord(0.0, 1.0, false);
|
||||
EXPECT_NEAR(0.0, texCoord.x(), edgeClampDelta);
|
||||
EXPECT_NEAR(0.5, texCoord.y(), edgeClampDelta);
|
||||
}
|
||||
|
||||
{
|
||||
cvf::Vec2f texCoord = scalarMapper->mapToTextureCoord(3.0, 3.0, false);
|
||||
EXPECT_NEAR(1.0, texCoord.x(), edgeClampDelta);
|
||||
EXPECT_NEAR(0.0, texCoord.y(), edgeClampDelta);
|
||||
}
|
||||
|
||||
{
|
||||
cvf::Vec2f texCoord = scalarMapper->mapToTextureCoord(-1.0, -1.0, false);
|
||||
EXPECT_NEAR(0.0, texCoord.x(), edgeClampDelta);
|
||||
EXPECT_NEAR(0.0, texCoord.y(), edgeClampDelta);
|
||||
}
|
||||
|
||||
{
|
||||
cvf::Vec2f texCoord = scalarMapper->mapToTextureCoord(0.5, 3.0, false);
|
||||
EXPECT_NEAR(0.5, texCoord.x(), edgeClampDelta);
|
||||
EXPECT_NEAR(0.25, texCoord.y(), edgeClampDelta);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Opacity
|
||||
{
|
||||
cvf::Vec2f texCoord = scalarMapper->mapToTextureCoord(0.0, 0.0, true);
|
||||
EXPECT_NEAR(0.0, texCoord.x(), edgeClampDelta);
|
||||
EXPECT_NEAR(0.5, texCoord.y(), edgeClampDelta);
|
||||
}
|
||||
|
||||
{
|
||||
cvf::Vec2f texCoord = scalarMapper->mapToTextureCoord(0.0, 1.0, true);
|
||||
EXPECT_NEAR(0.0, texCoord.x(), edgeClampDelta);
|
||||
EXPECT_NEAR(1.0, texCoord.y(), edgeClampDelta);
|
||||
}
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2011-2012 Statoil ASA, Ceetron AS
|
||||
//
|
||||
// ResInsight is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
||||
// for more details.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#include "cvfBase.h"
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include <stdio.h>
|
||||
|
||||
#include "cvfTrace.h"
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
cvf::Assert::setReportMode(cvf::Assert::CONSOLE);
|
||||
|
||||
testing::InitGoogleTest(&argc, argv);
|
||||
|
||||
int result = RUN_ALL_TESTS();
|
||||
|
||||
std::cout << "Please press <Enter> to close the window.";
|
||||
std::cin.get();
|
||||
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user