Browse Source

Trade: move a test case to a better place.

It'll be together with a test case for special bit strides, so it should
be after the place where to put constructBit().
pull/601/head
Vladimír Vondruš 3 years ago
parent
commit
15254d2d14
  1. 121
      src/Magnum/Trade/Test/SceneDataTest.cpp

121
src/Magnum/Trade/Test/SceneDataTest.cpp

@ -113,9 +113,9 @@ struct SceneDataTest: TestSuite::Tester {
void construct();
void constructZeroFields();
void constructZeroObjects();
void constructSpecialStrides();
void constructNotOwned();
template<class T> void constructString();
void constructSpecialStrides();
#ifdef MAGNUM_BUILD_DEPRECATED
void constructDeprecated();
void constructDeprecatedBoth2DAnd3D();
@ -419,17 +419,16 @@ SceneDataTest::SceneDataTest() {
&SceneDataTest::construct,
&SceneDataTest::constructZeroFields,
&SceneDataTest::constructZeroObjects,
&SceneDataTest::constructSpecialStrides});
&SceneDataTest::constructZeroObjects});
addInstancedTests({&SceneDataTest::constructNotOwned},
Containers::arraySize(NotOwnedData));
addTests<SceneDataTest>({
&SceneDataTest::constructString<UnsignedByte>,
&SceneDataTest::constructString<UnsignedShort>,
&SceneDataTest::constructString<UnsignedInt>,
&SceneDataTest::constructString<UnsignedLong>});
addTests({&SceneDataTest::constructString<UnsignedByte>,
&SceneDataTest::constructString<UnsignedShort>,
&SceneDataTest::constructString<UnsignedInt>,
&SceneDataTest::constructString<UnsignedLong>,
&SceneDataTest::constructSpecialStrides});
#ifdef MAGNUM_BUILD_DEPRECATED
addInstancedTests({&SceneDataTest::constructDeprecated},
@ -2157,59 +2156,6 @@ void SceneDataTest::constructZeroObjects() {
CORRADE_COMPARE(scene.mapping(SceneField::MeshMaterial).data(), nullptr);
}
void SceneDataTest::constructSpecialStrides() {
Containers::StridedArrayView1D<UnsignedShort> broadcastedData;
Containers::StridedArrayView1D<UnsignedShort> nonBroadcastedData;
Containers::ArrayTuple data{
{NoInit, 1, broadcastedData},
{NoInit, 4, nonBroadcastedData}
};
broadcastedData[0] = 15;
Utility::copy({1, 2, 3, 4}, nonBroadcastedData);
SceneFieldData broadcastedMapping{sceneFieldCustom(38),
broadcastedData.broadcasted<0>(4), nonBroadcastedData};
SceneFieldData broadcastedField{sceneFieldCustom(39),
nonBroadcastedData, broadcastedData.broadcasted<0>(4)};
SceneFieldData flippedField{sceneFieldCustom(40),
nonBroadcastedData.flipped<0>(), nonBroadcastedData.flipped<0>()};
SceneFieldData flippedFieldOffsetOnly{sceneFieldCustom(41),
4, SceneMappingType::UnsignedShort, std::size_t(static_cast<char*>(nonBroadcastedData.flipped<0>().data()) - data.data()), -2,
SceneFieldType::UnsignedShort, std::size_t(static_cast<char*>(nonBroadcastedData.flipped<0>().data()) - data.data()), -2};
SceneData scene{SceneMappingType::UnsignedShort, 8, std::move(data), {
broadcastedMapping, broadcastedField, flippedField, flippedFieldOffsetOnly
}};
CORRADE_COMPARE_AS(scene.mapping<UnsignedShort>(0),
Containers::arrayView<UnsignedShort>({15, 15, 15, 15}),
TestSuite::Compare::Container);
CORRADE_COMPARE_AS(scene.field<UnsignedShort>(0),
Containers::arrayView<UnsignedShort>({1, 2, 3, 4}),
TestSuite::Compare::Container);
CORRADE_COMPARE_AS(scene.mapping<UnsignedShort>(1),
Containers::arrayView<UnsignedShort>({1, 2, 3, 4}),
TestSuite::Compare::Container);
CORRADE_COMPARE_AS(scene.field<UnsignedShort>(1),
Containers::arrayView<UnsignedShort>({15, 15, 15, 15}),
TestSuite::Compare::Container);
CORRADE_COMPARE_AS(scene.mapping<UnsignedShort>(2),
Containers::arrayView<UnsignedShort>({4, 3, 2, 1}),
TestSuite::Compare::Container);
CORRADE_COMPARE_AS(scene.field<UnsignedShort>(2),
Containers::arrayView<UnsignedShort>({4, 3, 2, 1}),
TestSuite::Compare::Container);
CORRADE_COMPARE_AS(scene.mapping<UnsignedShort>(3),
Containers::arrayView<UnsignedShort>({4, 3, 2, 1}),
TestSuite::Compare::Container);
CORRADE_COMPARE_AS(scene.field<UnsignedShort>(3),
Containers::arrayView<UnsignedShort>({4, 3, 2, 1}),
TestSuite::Compare::Container);
}
void SceneDataTest::constructNotOwned() {
auto&& instanceData = NotOwnedData[testCaseInstanceId()];
setTestCaseDescription(instanceData.name);
@ -2563,6 +2509,59 @@ template<class T> void SceneDataTest::constructString() {
}
}
void SceneDataTest::constructSpecialStrides() {
Containers::StridedArrayView1D<UnsignedShort> broadcastedData;
Containers::StridedArrayView1D<UnsignedShort> nonBroadcastedData;
Containers::ArrayTuple data{
{NoInit, 1, broadcastedData},
{NoInit, 4, nonBroadcastedData}
};
broadcastedData[0] = 15;
Utility::copy({1, 2, 3, 4}, nonBroadcastedData);
SceneFieldData broadcastedMapping{sceneFieldCustom(38),
broadcastedData.broadcasted<0>(4), nonBroadcastedData};
SceneFieldData broadcastedField{sceneFieldCustom(39),
nonBroadcastedData, broadcastedData.broadcasted<0>(4)};
SceneFieldData flippedField{sceneFieldCustom(40),
nonBroadcastedData.flipped<0>(), nonBroadcastedData.flipped<0>()};
SceneFieldData flippedFieldOffsetOnly{sceneFieldCustom(41),
4, SceneMappingType::UnsignedShort, std::size_t(static_cast<char*>(nonBroadcastedData.flipped<0>().data()) - data.data()), -2,
SceneFieldType::UnsignedShort, std::size_t(static_cast<char*>(nonBroadcastedData.flipped<0>().data()) - data.data()), -2};
SceneData scene{SceneMappingType::UnsignedShort, 8, std::move(data), {
broadcastedMapping, broadcastedField, flippedField, flippedFieldOffsetOnly
}};
CORRADE_COMPARE_AS(scene.mapping<UnsignedShort>(0),
Containers::arrayView<UnsignedShort>({15, 15, 15, 15}),
TestSuite::Compare::Container);
CORRADE_COMPARE_AS(scene.field<UnsignedShort>(0),
Containers::arrayView<UnsignedShort>({1, 2, 3, 4}),
TestSuite::Compare::Container);
CORRADE_COMPARE_AS(scene.mapping<UnsignedShort>(1),
Containers::arrayView<UnsignedShort>({1, 2, 3, 4}),
TestSuite::Compare::Container);
CORRADE_COMPARE_AS(scene.field<UnsignedShort>(1),
Containers::arrayView<UnsignedShort>({15, 15, 15, 15}),
TestSuite::Compare::Container);
CORRADE_COMPARE_AS(scene.mapping<UnsignedShort>(2),
Containers::arrayView<UnsignedShort>({4, 3, 2, 1}),
TestSuite::Compare::Container);
CORRADE_COMPARE_AS(scene.field<UnsignedShort>(2),
Containers::arrayView<UnsignedShort>({4, 3, 2, 1}),
TestSuite::Compare::Container);
CORRADE_COMPARE_AS(scene.mapping<UnsignedShort>(3),
Containers::arrayView<UnsignedShort>({4, 3, 2, 1}),
TestSuite::Compare::Container);
CORRADE_COMPARE_AS(scene.field<UnsignedShort>(3),
Containers::arrayView<UnsignedShort>({4, 3, 2, 1}),
TestSuite::Compare::Container);
}
#ifdef MAGNUM_BUILD_DEPRECATED
void SceneDataTest::constructDeprecated() {
auto&& data = ChildrenDeprecatedData[testCaseInstanceId()];

Loading…
Cancel
Save