Browse Source

SceneTools: minor cleanup in the tests.

Something an automated formatter couldn't do, adapting code formatting
rules based on how given API use evolved to be most readable.
pull/620/head
Vladimír Vondruš 3 years ago
parent
commit
a99c5bd4e1
  1. 60
      src/Magnum/SceneTools/Test/CombineTest.cpp
  2. 57
      src/Magnum/SceneTools/Test/ConvertToSingleFunctionObjectsTest.cpp
  3. 32
      src/Magnum/SceneTools/Test/OrderClusterParentsTest.cpp

60
src/Magnum/SceneTools/Test/CombineTest.cpp

@ -197,8 +197,12 @@ void CombineTest::alignment() {
const Vector2d translationFieldData[]{{1.5, 3.0}}; /* 4 byte padding before */
Trade::SceneData scene = Implementation::combine(Trade::SceneMappingType::UnsignedShort, 167, Containers::arrayView({
Trade::SceneFieldData{Trade::SceneField::Mesh, Containers::arrayView(meshMappingData), Containers::arrayView(meshFieldData)},
Trade::SceneFieldData{Trade::SceneField::Translation, Containers::arrayView(translationMappingData), Containers::arrayView(translationFieldData)}
Trade::SceneFieldData{Trade::SceneField::Mesh,
Containers::arrayView(meshMappingData),
Containers::arrayView(meshFieldData)},
Trade::SceneFieldData{Trade::SceneField::Translation,
Containers::arrayView(translationMappingData),
Containers::arrayView(translationFieldData)}
}));
CORRADE_COMPARE(scene.dataFlags(), Trade::DataFlag::Owned|Trade::DataFlag::Mutable);
@ -240,22 +244,30 @@ void CombineTest::alignment() {
}
void CombineTest::mappingShared() {
const UnsignedShort meshMappingData[]{15, 23, 47};
const UnsignedByte meshFieldData[]{0, 1, 2};
const Int meshMaterialFieldData[]{72, -1, 23};
const UnsignedShort meshMappingData[3]{};
const UnsignedByte meshFieldData[3]{};
const Int meshMaterialFieldData[3]{};
const UnsignedShort translationRotationMappingData[]{14, 22};
const Vector2 translationFieldData[]{{-1.0f, 25.3f}, {2.2f, 2.1f}};
const Complex rotationFieldData[]{Complex::rotation(35.0_degf), Complex::rotation(22.5_degf)};
const UnsignedShort translationRotationMappingData[2]{};
const Vector2 translationFieldData[2]{};
const Complex rotationFieldData[2]{};
Trade::SceneData scene = Implementation::combine(Trade::SceneMappingType::UnsignedInt, 173, Containers::arrayView({
/* Deliberately in an arbitrary order to avoid false assumptions like
fields sharing the same object mapping always being after each
other */
Trade::SceneFieldData{Trade::SceneField::Mesh, Containers::arrayView(meshMappingData), Containers::arrayView(meshFieldData)},
Trade::SceneFieldData{Trade::SceneField::Translation, Containers::arrayView(translationRotationMappingData), Containers::arrayView(translationFieldData)},
Trade::SceneFieldData{Trade::SceneField::MeshMaterial, Containers::arrayView(meshMappingData), Containers::arrayView(meshMaterialFieldData)},
Trade::SceneFieldData{Trade::SceneField::Rotation, Containers::arrayView(translationRotationMappingData), Containers::arrayView(rotationFieldData)}
Trade::SceneFieldData{Trade::SceneField::Mesh,
Containers::arrayView(meshMappingData),
Containers::arrayView(meshFieldData)},
Trade::SceneFieldData{Trade::SceneField::Translation,
Containers::arrayView(translationRotationMappingData),
Containers::arrayView(translationFieldData)},
Trade::SceneFieldData{Trade::SceneField::MeshMaterial,
Containers::arrayView(meshMappingData),
Containers::arrayView(meshMaterialFieldData)},
Trade::SceneFieldData{Trade::SceneField::Rotation,
Containers::arrayView(translationRotationMappingData),
Containers::arrayView(rotationFieldData)}
}));
CORRADE_COMPARE(scene.dataFlags(), Trade::DataFlag::Owned|Trade::DataFlag::Mutable);
@ -277,13 +289,21 @@ void CombineTest::mappingPlaceholderFieldPlaceholder() {
const UnsignedByte meshFieldData[]{0, 1, 2};
Trade::SceneData scene = Implementation::combine(Trade::SceneMappingType::UnsignedShort, 173, Containers::arrayView({
Trade::SceneFieldData{Trade::SceneField::Camera, Containers::ArrayView<UnsignedByte>{nullptr, 1}, Containers::ArrayView<UnsignedShort>{nullptr, 1}},
Trade::SceneFieldData{Trade::SceneField::Mesh, Containers::arrayView(meshMappingData), Containers::arrayView(meshFieldData)},
Trade::SceneFieldData{Trade::SceneField::Camera,
Containers::ArrayView<UnsignedByte>{nullptr, 1},
Containers::ArrayView<UnsignedShort>{nullptr, 1}},
Trade::SceneFieldData{Trade::SceneField::Mesh,
Containers::arrayView(meshMappingData),
Containers::arrayView(meshFieldData)},
/* Looks like sharing object mapping with the Camera field, but
actually both are placeholders */
Trade::SceneFieldData{Trade::SceneField::Light, Containers::ArrayView<UnsignedShort>{nullptr, 2}, Containers::ArrayView<UnsignedInt>{nullptr, 2}},
Trade::SceneFieldData{Trade::SceneField::Light,
Containers::ArrayView<UnsignedShort>{nullptr, 2},
Containers::ArrayView<UnsignedInt>{nullptr, 2}},
/* Array field */
Trade::SceneFieldData{Trade::sceneFieldCustom(15), Containers::ArrayView<UnsignedShort>{nullptr, 2}, Containers::StridedArrayView2D<Short>{{nullptr, 16}, {2, 4}}},
Trade::SceneFieldData{Trade::sceneFieldCustom(15),
Containers::ArrayView<UnsignedShort>{nullptr, 2},
Containers::StridedArrayView2D<Short>{{nullptr, 16}, {2, 4}}},
}));
CORRADE_COMPARE(scene.dataFlags(), Trade::DataFlag::Owned|Trade::DataFlag::Mutable);
@ -330,8 +350,12 @@ void CombineTest::mappingSharedFieldPlaceholder() {
const UnsignedByte meshFieldData[]{0, 1, 2};
Trade::SceneData scene = Implementation::combine(Trade::SceneMappingType::UnsignedInt, 173, Containers::arrayView({
Trade::SceneFieldData{Trade::SceneField::Mesh, Containers::arrayView(meshMappingData), Containers::arrayView(meshFieldData)},
Trade::SceneFieldData{Trade::SceneField::MeshMaterial, Containers::arrayView(meshMappingData), Containers::ArrayView<Int>{nullptr, 3}},
Trade::SceneFieldData{Trade::SceneField::Mesh,
Containers::arrayView(meshMappingData),
Containers::arrayView(meshFieldData)},
Trade::SceneFieldData{Trade::SceneField::MeshMaterial,
Containers::arrayView(meshMappingData),
Containers::ArrayView<Int>{nullptr, 3}},
}));
CORRADE_COMPARE(scene.dataFlags(), Trade::DataFlag::Owned|Trade::DataFlag::Mutable);

57
src/Magnum/SceneTools/Test/ConvertToSingleFunctionObjectsTest.cpp

@ -115,14 +115,35 @@ void ConvertToSingleFunctionObjectsTest::test() {
const Byte foo3FieldData[]{-1, -2, 7, 2};
Trade::SceneData original = Implementation::combine(Trade::SceneMappingType::UnsignedShort, data.originalObjectCount, Containers::arrayView({
Trade::SceneFieldData{Trade::SceneField::Parent, Containers::arrayView(parentMappingData), Containers::arrayView(parentFieldData), data.parentFieldFlagsInput},
Trade::SceneFieldData{Trade::SceneField::Mesh, Containers::arrayView(meshMappingData), Containers::StridedArrayView1D<const UnsignedInt>{meshMaterialFieldData, &meshMaterialFieldData[0].first(), Containers::arraySize(meshMaterialFieldData), sizeof(meshMaterialFieldData[0])}},
Trade::SceneFieldData{Trade::SceneField::MeshMaterial, Containers::arrayView(meshMappingData), Containers::StridedArrayView1D<const Int>{meshMaterialFieldData, &meshMaterialFieldData[0].second(), Containers::arraySize(meshMaterialFieldData), sizeof(meshMaterialFieldData[0])}},
Trade::SceneFieldData{Trade::SceneField::Camera, Containers::arrayView(cameraMappingData), Containers::arrayView(cameraFieldData)},
Trade::SceneFieldData{Trade::SceneField::Light, Containers::arrayView(lightMappingData), Containers::arrayView(lightFieldData), Trade::SceneFieldFlag::ImplicitMapping},
Trade::SceneFieldData{Trade::sceneFieldCustom(15), Containers::arrayView(fooMappingData), Containers::arrayView(fooFieldData), Trade::SceneFieldFlag::ImplicitMapping},
Trade::SceneFieldData{Trade::sceneFieldCustom(16), Containers::arrayView(foo2MappingData), Containers::arrayView(foo2FieldData), Trade::SceneFieldFlag::ImplicitMapping},
Trade::SceneFieldData{Trade::sceneFieldCustom(17), Containers::arrayView(fooMappingData), Containers::arrayView(foo3FieldData), Trade::SceneFieldFlag::ImplicitMapping}
Trade::SceneFieldData{Trade::SceneField::Parent,
Containers::arrayView(parentMappingData),
Containers::arrayView(parentFieldData),
data.parentFieldFlagsInput},
Trade::SceneFieldData{Trade::SceneField::Mesh,
Containers::arrayView(meshMappingData),
Containers::stridedArrayView(meshMaterialFieldData).slice(&Containers::Pair<UnsignedInt, Int>::first)},
Trade::SceneFieldData{Trade::SceneField::MeshMaterial,
Containers::arrayView(meshMappingData),
Containers::stridedArrayView(meshMaterialFieldData).slice(&Containers::Pair<UnsignedInt, Int>::second)},
Trade::SceneFieldData{Trade::SceneField::Camera,
Containers::arrayView(cameraMappingData),
Containers::arrayView(cameraFieldData)},
Trade::SceneFieldData{Trade::SceneField::Light,
Containers::arrayView(lightMappingData),
Containers::arrayView(lightFieldData),
Trade::SceneFieldFlag::ImplicitMapping},
Trade::SceneFieldData{Trade::sceneFieldCustom(15),
Containers::arrayView(fooMappingData),
Containers::arrayView(fooFieldData),
Trade::SceneFieldFlag::ImplicitMapping},
Trade::SceneFieldData{Trade::sceneFieldCustom(16),
Containers::arrayView(foo2MappingData),
Containers::arrayView(foo2FieldData),
Trade::SceneFieldFlag::ImplicitMapping},
Trade::SceneFieldData{Trade::sceneFieldCustom(17),
Containers::arrayView(fooMappingData),
Containers::arrayView(foo3FieldData),
Trade::SceneFieldFlag::ImplicitMapping}
}));
Trade::SceneData scene = Implementation::convertToSingleFunctionObjects(original, Containers::arrayView({
@ -307,13 +328,23 @@ void ConvertToSingleFunctionObjectsTest::fieldsToCopy() {
const Int fooFieldData[]{0, 1, 2, 3, 4, 5, 6, 7};
Trade::SceneData original = Implementation::combine(Trade::SceneMappingType::UnsignedShort, 50, Containers::arrayView({
Trade::SceneFieldData{Trade::SceneField::Parent, Containers::arrayView(parentMappingData), Containers::arrayView(parentFieldData)},
Trade::SceneFieldData{Trade::SceneField::Mesh, Containers::arrayView(meshMappingData), Containers::arrayView(meshFieldData)},
Trade::SceneFieldData{Trade::SceneField::Skin, Containers::arrayView(skinMappingData), Containers::arrayView(skinFieldData)},
Trade::SceneFieldData{Trade::SceneField::Parent,
Containers::arrayView(parentMappingData),
Containers::arrayView(parentFieldData)},
Trade::SceneFieldData{Trade::SceneField::Mesh,
Containers::arrayView(meshMappingData),
Containers::arrayView(meshFieldData)},
Trade::SceneFieldData{Trade::SceneField::Skin,
Containers::arrayView(skinMappingData),
Containers::arrayView(skinFieldData)},
/* Array field */
Trade::SceneFieldData{Trade::sceneFieldCustom(15), Containers::arrayView(fooMappingData), Containers::StridedArrayView2D<const Int>{fooFieldData, {4, 2}}},
Trade::SceneFieldData{Trade::sceneFieldCustom(15),
Containers::arrayView(fooMappingData),
Containers::StridedArrayView2D<const Int>{fooFieldData, {4, 2}}},
/* Just to disambiguate between 2D and 3D */
Trade::SceneFieldData{Trade::SceneField::Transformation, Trade::SceneMappingType::UnsignedShort, nullptr, Trade::SceneFieldType::Matrix4x4, nullptr}
Trade::SceneFieldData{Trade::SceneField::Transformation,
Trade::SceneMappingType::UnsignedShort, nullptr,
Trade::SceneFieldType::Matrix4x4, nullptr}
}));
Trade::SceneData scene = Implementation::convertToSingleFunctionObjects(original,

32
src/Magnum/SceneTools/Test/OrderClusterParentsTest.cpp

@ -69,7 +69,7 @@ OrderClusterParentsTest::OrderClusterParentsTest() {
void OrderClusterParentsTest::test() {
struct Field {
/* To verify we don't have unnecessarily hardcoded 32-bit types */
UnsignedShort object;
UnsignedShort mapping;
Byte parent;
} data[]{
/* Backward parent reference */
@ -94,8 +94,12 @@ void OrderClusterParentsTest::test() {
Trade::SceneData scene{Trade::SceneMappingType::UnsignedShort, 158, {}, data, {
/* To verify it doesn't just pick the first field ever */
Trade::SceneFieldData{Trade::SceneField::Mesh, Trade::SceneMappingType::UnsignedShort, nullptr, Trade::SceneFieldType::UnsignedInt, nullptr},
Trade::SceneFieldData{Trade::SceneField::Parent, view.slice(&Field::object), view.slice(&Field::parent)}
Trade::SceneFieldData{Trade::SceneField::Mesh,
Trade::SceneMappingType::UnsignedShort, nullptr,
Trade::SceneFieldType::UnsignedInt, nullptr},
Trade::SceneFieldData{Trade::SceneField::Parent,
view.slice(&Field::mapping),
view.slice(&Field::parent)}
}};
CORRADE_COMPARE_AS(orderClusterParents(scene), (Containers::arrayView<Containers::Pair<UnsignedInt, Int>>({
@ -165,7 +169,7 @@ void OrderClusterParentsTest::intoWrongDestinationSize() {
CORRADE_SKIP_IF_NO_ASSERT();
struct Field {
UnsignedInt object;
UnsignedInt mapping;
Int parent;
} data[]{
{2, -1},
@ -175,7 +179,9 @@ void OrderClusterParentsTest::intoWrongDestinationSize() {
Containers::StridedArrayView1D<Field> view = data;
Trade::SceneData scene{Trade::SceneMappingType::UnsignedInt, 8, {}, data, {
Trade::SceneFieldData{Trade::SceneField::Parent, view.slice(&Field::object), view.slice(&Field::parent)}
Trade::SceneFieldData{Trade::SceneField::Parent,
view.slice(&Field::mapping),
view.slice(&Field::parent)}
}};
UnsignedInt mappingCorrect[3];
@ -210,7 +216,9 @@ void OrderClusterParentsTest::sparse() {
Containers::StridedArrayView1D<Field> view = data;
Trade::SceneData scene{Trade::SceneMappingType::UnsignedInt, 16, {}, data, {
Trade::SceneFieldData{Trade::SceneField::Parent, view.slice(&Field::object), view.slice(&Field::parent)}
Trade::SceneFieldData{Trade::SceneField::Parent,
view.slice(&Field::object),
view.slice(&Field::parent)}
}};
std::ostringstream out;
@ -236,7 +244,9 @@ void OrderClusterParentsTest::cyclic() {
Containers::StridedArrayView1D<Field> view = data;
Trade::SceneData scene{Trade::SceneMappingType::UnsignedInt, 16, {}, data, {
Trade::SceneFieldData{Trade::SceneField::Parent, view.slice(&Field::object), view.slice(&Field::parent)}
Trade::SceneFieldData{Trade::SceneField::Parent,
view.slice(&Field::object),
view.slice(&Field::parent)}
}};
std::ostringstream out;
@ -264,7 +274,9 @@ void OrderClusterParentsTest::cyclicDeep() {
Containers::StridedArrayView1D<Field> view = data;
Trade::SceneData scene{Trade::SceneMappingType::UnsignedInt, 16, {}, data, {
Trade::SceneFieldData{Trade::SceneField::Parent, view.slice(&Field::object), view.slice(&Field::parent)}
Trade::SceneFieldData{Trade::SceneField::Parent,
view.slice(&Field::object),
view.slice(&Field::parent)}
}};
std::ostringstream out;
@ -294,7 +306,9 @@ void OrderClusterParentsTest::sparseAndCyclic() {
Containers::StridedArrayView1D<Field> view = data;
Trade::SceneData scene{Trade::SceneMappingType::UnsignedInt, 16, {}, data, {
Trade::SceneFieldData{Trade::SceneField::Parent, view.slice(&Field::object), view.slice(&Field::parent)}
Trade::SceneFieldData{Trade::SceneField::Parent,
view.slice(&Field::object),
view.slice(&Field::parent)}
}};
std::ostringstream out;

Loading…
Cancel
Save