summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/i965_jpeg_encode_test.cpp81
-rw-r--r--test/i965_jpeg_test_data.cpp64
-rw-r--r--test/i965_jpeg_test_data.h45
3 files changed, 110 insertions, 80 deletions
diff --git a/test/i965_jpeg_encode_test.cpp b/test/i965_jpeg_encode_test.cpp
index c587643..c794bf9 100644
--- a/test/i965_jpeg_encode_test.cpp
+++ b/test/i965_jpeg_encode_test.cpp
@@ -25,9 +25,8 @@
#include "i965_jpeg_test_data.h"
#include "i965_streamable.h"
#include "i965_test_fixture.h"
-#include "test_utils.h"
-#include <algorithm>
+#include <numeric>
#include <cstring>
#include <memory>
#include <tuple>
@@ -83,51 +82,6 @@ TEST_F(JPEGEncodeTest, Entrypoint)
}
}
-class TestInputCreator
-{
-public:
- typedef std::shared_ptr<TestInputCreator> Shared;
- typedef std::shared_ptr<const TestInputCreator> SharedConst;
-
- TestInput::Shared create(const unsigned fourcc) const
- {
- const std::array<unsigned, 2> res = getResolution();
-
- TestInput::Shared input(new TestInput(fourcc, res[0], res[1]));
- ByteData& bytes = input->bytes;
-
- RandomValueGenerator<uint8_t> rg(0x00, 0xff);
- for (size_t i(0); i < input->planes; ++i)
- std::generate_n(
- std::back_inserter(bytes), input->sizes[i],
- [&rg]{ return rg(); });
- return input;
- }
-
- friend ::std::ostream& operator<<(
- ::std::ostream& os, const TestInputCreator& t)
- {
- t.repr(os);
- return os;
- }
-
- friend ::std::ostream& operator<<(
- ::std::ostream& os, const TestInputCreator::Shared& t)
- {
- return os << *t;
- }
-
- friend ::std::ostream& operator<<(
- ::std::ostream& os, const TestInputCreator::SharedConst& t)
- {
- return os << *t;
- }
-
-protected:
- virtual std::array<unsigned, 2> getResolution() const = 0;
- virtual void repr(std::ostream& os) const = 0;
-};
-
const TestInput::Shared NV12toI420(const TestInput::SharedConst& nv12)
{
TestInput::Shared i420(
@@ -541,18 +495,6 @@ TEST_P(JPEGEncodeInputTest, Full)
VerifyOutput();
}
-class RandomSizeCreator
- : public TestInputCreator
-{
-protected:
- std::array<unsigned, 2> getResolution() const
- {
- static RandomValueGenerator<unsigned> rg(1, 769);
- return {rg(), rg()};
- }
- void repr(std::ostream& os) const { os << "Random Size"; }
-};
-
INSTANTIATE_TEST_CASE_P(
Random, JPEGEncodeInputTest,
::testing::Combine(
@@ -563,27 +505,6 @@ INSTANTIATE_TEST_CASE_P(
)
);
-class FixedSizeCreator
- : public TestInputCreator
-{
-public:
- FixedSizeCreator(const std::array<unsigned, 2>& resolution)
- : res(resolution)
- { }
-
-protected:
- std::array<unsigned, 2> getResolution() const { return res; }
- void repr(std::ostream& os) const
- {
- os << "Fixed Size " << res[0] << "x" << res[1];
- }
-
-private:
- const std::array<unsigned, 2> res;
-};
-
-typedef std::vector<TestInputCreator::SharedConst> InputCreators;
-
InputCreators generateCommonInputs()
{
return {
diff --git a/test/i965_jpeg_test_data.cpp b/test/i965_jpeg_test_data.cpp
index 84316a8..0c1f0d3 100644
--- a/test/i965_jpeg_test_data.cpp
+++ b/test/i965_jpeg_test_data.cpp
@@ -25,6 +25,9 @@
#include "i965_jpeg_test_data.h"
#include "i965_drv_video.h"
#include "i965_streamable.h"
+#include "test_utils.h"
+
+#include <algorithm>
namespace JPEG {
namespace Decode {
@@ -851,5 +854,66 @@ namespace Encode {
return os << *t;
}
+ TestInput::Shared TestInputCreator::create(const unsigned fourcc) const
+ {
+ const std::array<unsigned, 2> res = getResolution();
+
+ TestInput::Shared input(new TestInput(fourcc, res[0], res[1]));
+ ByteData& bytes = input->bytes;
+
+ RandomValueGenerator<uint8_t> rg(0x00, 0xff);
+ for (size_t i(0); i < input->planes; ++i)
+ std::generate_n(
+ std::back_inserter(bytes), input->sizes[i],
+ [&rg]{ return rg(); });
+ return input;
+ }
+
+ ::std::ostream& operator<<(::std::ostream& os, const TestInputCreator& t)
+ {
+ t.repr(os);
+ return os;
+ }
+
+ ::std::ostream& operator<<(
+ ::std::ostream& os, const TestInputCreator::Shared& t)
+ {
+ return os << *t;
+ }
+
+ ::std::ostream& operator<<(
+ ::std::ostream& os, const TestInputCreator::SharedConst& t)
+ {
+ return os << *t;
+ }
+
+ std::array<unsigned, 2> RandomSizeCreator::getResolution() const
+ {
+ static RandomValueGenerator<unsigned> rg(1, 769);
+ return {rg(), rg()};
+ }
+
+ void RandomSizeCreator::repr(::std::ostream& os) const
+ {
+ os << "Random Size";
+ }
+
+ FixedSizeCreator::FixedSizeCreator(
+ const std::array<unsigned, 2>& resolution)
+ : res(resolution)
+ {
+ return;
+ }
+
+ std::array<unsigned, 2> FixedSizeCreator::getResolution() const
+ {
+ return res;
+ }
+
+ void FixedSizeCreator::repr(::std::ostream& os) const
+ {
+ os << "Fixed Size " << res[0] << "x" << res[1];
+ }
+
} // namespace Encode
} // namespace JPEG
diff --git a/test/i965_jpeg_test_data.h b/test/i965_jpeg_test_data.h
index 5f4802e..cde0cfe 100644
--- a/test/i965_jpeg_test_data.h
+++ b/test/i965_jpeg_test_data.h
@@ -421,6 +421,51 @@ namespace Encode {
std::array<size_t, 3> offsets;
std::array<size_t, 3> sizes;
};
+
+ class TestInputCreator
+ {
+ public:
+ typedef std::shared_ptr<TestInputCreator> Shared;
+ typedef std::shared_ptr<const TestInputCreator> SharedConst;
+
+ TestInput::Shared create(const unsigned) const;
+
+ friend ::std::ostream& operator<<(
+ ::std::ostream&, const TestInputCreator&);
+ friend ::std::ostream& operator<<(
+ ::std::ostream&, const TestInputCreator::Shared&);
+ friend ::std::ostream& operator<<(
+ ::std::ostream&, const TestInputCreator::SharedConst&);
+
+ protected:
+ virtual std::array<unsigned, 2> getResolution() const = 0;
+ virtual void repr(::std::ostream& os) const = 0;
+ };
+
+ class RandomSizeCreator
+ : public TestInputCreator
+ {
+ protected:
+ std::array<unsigned, 2> getResolution() const;
+ void repr(::std::ostream&) const;
+ };
+
+ class FixedSizeCreator
+ : public TestInputCreator
+ {
+ public:
+ FixedSizeCreator(const std::array<unsigned, 2>&);
+
+ protected:
+ std::array<unsigned, 2> getResolution() const;
+ void repr(::std::ostream& os) const;
+
+ private:
+ const std::array<unsigned, 2> res;
+ };
+
+ typedef std::vector<TestInputCreator::SharedConst> InputCreators;
+
} // namespace Encode
} // namespace JPEG