Skip to content

Commit

Permalink
Add pixelFormatRGB test
Browse files Browse the repository at this point in the history
  • Loading branch information
ChristianFeldmann committed Jul 26, 2024
1 parent 50c04f4 commit 5dad47d
Show file tree
Hide file tree
Showing 3 changed files with 409 additions and 0 deletions.
45 changes: 45 additions & 0 deletions YUViewUnitTest/common/Testing.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/* This file is part of YUView - The YUV player with advanced analytics toolset
* <https://github.com/IENT/YUView>
* Copyright (C) 2015 Institut für Nachrichtentechnik, RWTH Aachen University, GERMANY
*
* This program 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.
*
* In addition, as a special exception, the copyright holders give
* permission to link the code of portions of this program with the
* OpenSSL library under certain conditions as described in each
* individual source file, and distribute linked combinations including
* the two.
*
* You must obey the GNU General Public License in all respects for all
* of the code used other than OpenSSL. If you modify file(s) with this
* exception, you may extend this exception to your version of the
* file(s), but you are not obligated to do so. If you do not wish to do
* so, delete this exception statement from your version. If you delete
* this exception statement from all source files in the program, then
* also delete it here.
*
* This program 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 for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#include "Testing.h"

#include <common/Formatting.h>

namespace yuviewTest
{

std::string replaceNonSupportedCharacters(const std::string &str)
{
return stringReplaceAll(str, {' ', '.', '-', '*'}, '_');
}

} // namespace yuviewTest
85 changes: 85 additions & 0 deletions YUViewUnitTest/common/Testing.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
/* This file is part of YUView - The YUV player with advanced analytics toolset
* <https://github.com/IENT/YUView>
* Copyright (C) 2015 Institut für Nachrichtentechnik, RWTH Aachen University, GERMANY
*
* This program 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.
*
* In addition, as a special exception, the copyright holders give
* permission to link the code of portions of this program with the
* OpenSSL library under certain conditions as described in each
* individual source file, and distribute linked combinations including
* the two.
*
* You must obey the GNU General Public License in all respects for all
* of the code used other than OpenSSL. If you modify file(s) with this
* exception, you may extend this exception to your version of the
* file(s), but you are not obligated to do so. If you do not wish to do
* so, delete this exception statement from your version. If you delete
* this exception statement from all source files in the program, then
* also delete it here.
*
* This program 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 for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once

#include "gtest/gtest.h"

using ::testing::TestWithParam;
using ::testing::Values;

namespace yuviewTest
{

std::string replaceNonSupportedCharacters(const std::string &str);

template <typename TArg, typename... Args>
constexpr void _formatTestNameImplRest(std::stringstream &s, TArg arg)
{
if constexpr (std::is_same_v<TArg, std::string>)
s << "_" << replaceNonSupportedCharacters(arg);
else
s << "_" << arg;
}

template <typename TArg, typename... Args>
constexpr void _formatTestNameImplRest(std::stringstream &s, TArg arg, Args... remainingArgs)
{
_formatTestNameImplRest(s, arg);
if (sizeof...(remainingArgs) > 0)
_formatTestNameImplRest(s, remainingArgs...);
}

template <typename TArg, typename... Args>
constexpr void _formatTestNameImplFirst(std::stringstream &s, TArg arg)
{
if constexpr (std::is_same_v<TArg, std::string>)
s << replaceNonSupportedCharacters(arg);
else
s << arg;
}

template <typename TArg, typename... Args>
constexpr void _formatTestNameImplFirst(std::stringstream &s, TArg arg, Args... remainingArgs)
{
_formatTestNameImplFirst(s, arg);
_formatTestNameImplRest(s, remainingArgs...);
}

template <typename... Args> std::string formatTestName(Args... args)
{
std::stringstream s;
_formatTestNameImplFirst(s, args...);
return s.str();
}

} // namespace yuviewTest
Loading

0 comments on commit 5dad47d

Please sign in to comment.