RawSpeed
fast raw decoding library
Loading...
Searching...
No Matches
HuffmanCodeTest.cpp File Reference
#include "codes/HuffmanCode.h"
#include "adt/Array1DRef.h"
#include "adt/Casts.h"
#include "codes/AbstractPrefixCode.h"
#include "codes/AbstractPrefixCodeDecoder.h"
#include "io/Buffer.h"
#include <algorithm>
#include <bitset>
#include <cassert>
#include <cstdint>
#include <initializer_list>
#include <ostream>
#include <string>
#include <tuple>
#include <utility>
#include <vector>
#include <gtest/gtest.h>
#include <cstdlib>
Include dependency graph for HuffmanCodeTest.cpp:

Go to the source code of this file.

Classes

class  rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::CodeSymbolDeathTest
class  rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::CodeSymbolPrintTest
class  rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::CodeSymbolHaveCommonPrefixTest
class  rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::SignExtendTest
class  rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::generateCodeSymbolsTest
class  HuffmanCode< CodeTag >

Namespaces

namespace  rawspeed
namespace  rawspeed_test
namespace  rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}

Macros

#define s   HuffmanCode<BaselineCodeTag>::CodeSymbol

Typedefs

using rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::CodeSymbolType = std::tuple<int, int, bool>
using rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::CodeSymbolPrintDataType = std::tuple<int, int, std::string>
using rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::CodeSymbolHaveCommonPrefixDataType
using rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::SignExtendDataType = std::tuple<uint32_t, uint32_t, int>
using rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::generateCodeSymbolsDataType

Functions

static bool rawspeed::operator!= (const HuffmanCode< BaselineCodeTag > &lhs, const HuffmanCode< BaselineCodeTag > &rhs)
::std::ostream & rawspeed::operator<< (::std::ostream &os, const HuffmanCode< BaselineCodeTag >::CodeSymbol s)
static bool rawspeed::operator!= (const HuffmanCode< BaselineCodeTag >::CodeSymbol &lhs, const HuffmanCode< BaselineCodeTag >::CodeSymbol &rhs)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST (HuffmanCodeCodeSymbolTest, Equality)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST (CodeSymbolDeathTest, CodeSymbolLength)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::INSTANTIATE_TEST_SUITE_P (CodeSymbolDeathTest, CodeSymbolDeathTest, ::testing::ValuesIn(CodeSymbolData))
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST_P (CodeSymbolDeathTest, CodeSymbolDeathTest)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::INSTANTIATE_TEST_SUITE_P (CodeSymbolPrintTest, CodeSymbolPrintTest, ::testing::ValuesIn(CodeSymbolPrintData))
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST_P (CodeSymbolPrintTest, CodeSymbolPrintTest)
std::vector< HuffmanCode< BaselineCodeTag >::CodeSymbol > rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::GenerateAllPossibleCodeSymbols ()
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::INSTANTIATE_TEST_SUITE_P (CodeSymbolHaveCommonPrefixTest, CodeSymbolHaveCommonPrefixTest, ::testing::Combine(::testing::ValuesIn(allPossibleCodeSymbols), ::testing::ValuesIn(allPossibleCodeSymbols)))
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST_P (CodeSymbolHaveCommonPrefixTest, CodeSymbolHaveCommonPrefixTest)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST (CodeSymbolHaveCommonPrefixTest, BasicTest)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST (CodeSymbolHaveCommonPrefixDeathTest, AsymmetricalDeathTest)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST (HuffmanCodeDeathTest, setNCodesPerLengthRequires16Lengths)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST (HuffmanCodeTest, setNCodesPerLengthEqualCompareAndTrimming)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST (HuffmanCodeTest, setNCodesPerLengthEmptyIsBad)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST (HuffmanCodeTest, setNCodesPerLengthTooManyCodesTotal)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST (HuffmanCodeTest, setNCodesPerLengthTooManyCodesForLength)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST (HuffmanCodeTest, setNCodesPerLengthCodeSymbolOverflow)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST (HuffmanCodeTest, setNCodesPerLengthCounts)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST (HuffmanCodeDeathTest, setCodeValuesRequiresCount)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST (HuffmanCodeDeathTest, setCodeValuesRequiresLessThan162)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST (HuffmanCodeTest, setCodeValuesValueLessThan16)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST (HuffmanCodeTest, EqualCompareAndTrimming)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::INSTANTIATE_TEST_SUITE_P (SignExtendTest, SignExtendTest, ::testing::ValuesIn(signExtendData))
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST_P (SignExtendTest, SignExtendTest)
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::INSTANTIATE_TEST_SUITE_P (generateCodeSymbolsTest, generateCodeSymbolsTest, ::testing::ValuesIn(generateCodeSymbolsData))
 rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST_P (generateCodeSymbolsTest, generateCodeSymbolsTest)

Variables

const CodeSymbolType rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::CodeSymbolData []
const CodeSymbolPrintDataType rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::CodeSymbolPrintData []
const auto rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::allPossibleCodeSymbols = GenerateAllPossibleCodeSymbols()
auto rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::genHT
auto rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::genHTCount
auto rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::genHTFull
auto rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::zeroDiff = [](int len) { return make_tuple(0, len, -((1 << len) - 1)); }
auto rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::passthrough
auto rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::one = [](int len) { return make_tuple((1 << len), len, 1); }
const SignExtendDataType rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::signExtendData []
const generateCodeSymbolsDataType rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::generateCodeSymbolsData []

Macro Definition Documentation

◆ s

#define s   HuffmanCode<BaselineCodeTag>::CodeSymbol

Referenced by rawspeed::PrefixCode< CodeTag >::PrefixCode(), rawspeed::Spline< T >::calculateCurve(), rawspeed::Cr2VerticalOutputStripIterator::coalesce(), rawspeed::ColorFilterArray::colorToString(), rawspeed::IiqDecoder::CorrectQuadrantMultipliersCombined(), rawspeed::NefDecoder::DecodeUncompressed(), rawspeed::OrfDecoder::decodeUncompressed(), rawspeed::RawDecoder::decodeUncompressed(), rawspeed::OrfDecoder::decodeUncompressedInterleaved(), rawspeed::anonymous_namespace{NakedDecoder.cpp}::getAsBitOrder(), rawspeed::operator<<(), rawspeed::anonymous_namespace{Rw2Decoder.cpp}::populateGammaLUT(), rawspeed::Spline< T >::prepare(), rawspeed_test::anonymous_namespace{SplineTest.cpp}::ConstantTest< uint16_t >::SetUp(), rawspeed_test::anonymous_namespace{SplineTest.cpp}::IdentityTest< uint16_t >::SetUp(), rawspeed_test::anonymous_namespace{SplineTest.cpp}::ReferenceTest< SinReferenceTest< 2, 1 > >::SetUp(), rawspeed_test::anonymous_namespace{CommonTest.cpp}::TEST(), rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST(), rawspeed_test::anonymous_namespace{HuffmanCodeTest.cpp}::TEST(), rawspeed_test::anonymous_namespace{SplineTest.cpp}::TEST(), rawspeed_test::anonymous_namespace{SplineTest.cpp}::TEST(), rawspeed_test::anonymous_namespace{SplineTest.cpp}::TEST(), rawspeed_test::anonymous_namespace{SplineTest.cpp}::TEST(), rawspeed_test::anonymous_namespace{SplineTest.cpp}::TEST(), rawspeed_test::anonymous_namespace{SplineTest.cpp}::TEST(), rawspeed_test::anonymous_namespace{NORangesSetTest.cpp}::TEST_P(), rawspeed_test::anonymous_namespace{NORangesSetTest.cpp}::TEST_P(), and rawspeed_test::anonymous_namespace{NORangesSetTest.cpp}::TEST_P().