Raw File
TestGetSpaceDimension.cpp
/**
 * \file
 * \copyright
 * Copyright (c) 2012-2023, OpenGeoSys Community (http://www.opengeosys.org)
 *            Distributed under a Modified BSD License.
 *              See accompanying file LICENSE.txt or
 *              http://www.opengeosys.org/project/license
 *
 */

#include <gtest/gtest.h>

#include <vector>

#include "BaseLib/Algorithm.h"
#include "MeshLib/Node.h"
#include "MeshLib/Utils/GetSpaceDimension.h"

// nodes on x axis
TEST(MeshLib, GetSpaceDimensionOnXAxis)
{
    std::vector<MeshLib::Node*> nodes(2);
    nodes[0] = new MeshLib::Node(0.0, 0.0, 0.0, 0);
    nodes[1] = new MeshLib::Node(0.2, 0.0, 0.0, 1);

    auto const expected_space_dimension = 1u;
    ASSERT_EQ(expected_space_dimension, MeshLib::getSpaceDimension(nodes));
    BaseLib::cleanupVectorElements(nodes);
}

// nodes on y axis
TEST(MeshLib, GetSpaceDimensionOnYAxis)
{
    std::vector<MeshLib::Node*> nodes(2);
    nodes[0] = new MeshLib::Node(0.0, 0.0, 0.0, 0);
    nodes[1] = new MeshLib::Node(0.0, 2.0, 0.0, 1);

    auto const expected_space_dimension = 2u;
    ASSERT_EQ(expected_space_dimension, MeshLib::getSpaceDimension(nodes));
    BaseLib::cleanupVectorElements(nodes);
}
// nodes on z axis
TEST(MeshLib, GetSpaceDimensionOnZAxis)
{
    std::vector<MeshLib::Node*> nodes(2);
    nodes[0] = new MeshLib::Node(0.0, 0.0, 0.0, 0);
    nodes[1] = new MeshLib::Node(0.0, 0.0, 2.0, 1);

    auto const expected_space_dimension = 3u;
    ASSERT_EQ(expected_space_dimension, MeshLib::getSpaceDimension(nodes));
    BaseLib::cleanupVectorElements(nodes);
}

// nodes on x-y plane
TEST(MeshLib, GetSpaceDimensionOnXYPlane)
{
    std::vector<MeshLib::Node*> nodes(2);
    nodes[0] = new MeshLib::Node(-1.0, 0.0, 0.0, 0);
    nodes[1] = new MeshLib::Node(0.0, 2.0, 0.0, 1);

    auto const expected_space_dimension = 2u;
    ASSERT_EQ(expected_space_dimension, MeshLib::getSpaceDimension(nodes));
    BaseLib::cleanupVectorElements(nodes);
}

// nodes on y-z plane
TEST(MeshLib, GetSpaceDimensionOnYZPlane)
{
    std::vector<MeshLib::Node*> nodes(2);
    nodes[0] = new MeshLib::Node(0.0, -1.0, .0, 0);
    nodes[1] = new MeshLib::Node(0.0, 0.0, 2.0, 1);

    auto const expected_space_dimension = 3u;
    ASSERT_EQ(expected_space_dimension, MeshLib::getSpaceDimension(nodes));
    BaseLib::cleanupVectorElements(nodes);
}

// nodes on x-z plane
TEST(MeshLib, GetSpaceDimensionOnXZPlane)
{
    std::vector<MeshLib::Node*> nodes(2);
    nodes[0] = new MeshLib::Node(-1.0, 0.0, .0, 0);
    nodes[1] = new MeshLib::Node(0.0, 0.0, 2.0, 1);

    auto const expected_space_dimension = 3u;
    ASSERT_EQ(expected_space_dimension, MeshLib::getSpaceDimension(nodes));
    BaseLib::cleanupVectorElements(nodes);
}

// nodes in 3D space
TEST(MeshLib, GetSpaceDimensionIn3DSpace)
{
    std::vector<MeshLib::Node*> nodes(3);
    nodes[0] = new MeshLib::Node(-1.0, 1.0, .0, 0);
    nodes[1] = new MeshLib::Node(0.0, 3.0, 2.0, 1);
    nodes[2] = new MeshLib::Node(1.0, 0.0, 2.0, 1);

    auto const expected_space_dimension = 3u;
    ASSERT_EQ(expected_space_dimension, MeshLib::getSpaceDimension(nodes));
    BaseLib::cleanupVectorElements(nodes);
}
back to top