FeatureSchemaTests.cpp 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <Fixture.h>
  9. #include <FeaturePosition.h>
  10. #include <FeatureSchema.h>
  11. #include <FeatureSchemaDefault.h>
  12. #include <FeatureTrajectory.h>
  13. #include <FeatureVelocity.h>
  14. namespace EMotionFX::MotionMatching
  15. {
  16. class FeatureSchemaFixture
  17. : public Fixture
  18. {
  19. public:
  20. void SetUp() override
  21. {
  22. Fixture::SetUp();
  23. m_featureSchema = AZStd::make_unique<FeatureSchema>();
  24. DefaultFeatureSchema(*m_featureSchema.get(), {});
  25. }
  26. void TearDown() override
  27. {
  28. Fixture::TearDown();
  29. m_featureSchema.reset();
  30. }
  31. AZStd::unique_ptr<FeatureSchema> m_featureSchema;
  32. };
  33. TEST_F(FeatureSchemaFixture, AddFeature)
  34. {
  35. m_featureSchema->AddFeature(aznew FeaturePosition());
  36. m_featureSchema->AddFeature(aznew FeatureVelocity());
  37. m_featureSchema->AddFeature(aznew FeatureTrajectory());
  38. EXPECT_EQ(m_featureSchema->GetNumFeatures(), 9);
  39. }
  40. TEST_F(FeatureSchemaFixture, Clear)
  41. {
  42. m_featureSchema->Clear();
  43. EXPECT_EQ(m_featureSchema->GetNumFeatures(), 0);
  44. }
  45. TEST_F(FeatureSchemaFixture, GetNumFeatures)
  46. {
  47. EXPECT_EQ(m_featureSchema->GetNumFeatures(), 6);
  48. }
  49. TEST_F(FeatureSchemaFixture, GetFeature)
  50. {
  51. EXPECT_EQ(m_featureSchema->GetFeature(1)->RTTI_GetType(), azrtti_typeid<FeaturePosition>());
  52. EXPECT_STREQ(m_featureSchema->GetFeature(3)->GetName().c_str(), "Left Foot Velocity");
  53. }
  54. TEST_F(FeatureSchemaFixture, GetFeatures)
  55. {
  56. int counter = 0;
  57. for (const Feature* feature : m_featureSchema->GetFeatures())
  58. {
  59. AZ_UNUSED(feature);
  60. counter++;
  61. }
  62. EXPECT_EQ(counter, 6);
  63. }
  64. TEST_F(FeatureSchemaFixture, FindFeatureById)
  65. {
  66. const Feature* feature = m_featureSchema->GetFeature(1);
  67. const AZ::TypeId id = feature->GetId();
  68. const Feature* result = m_featureSchema->FindFeatureById(id);
  69. EXPECT_EQ(result, feature);
  70. }
  71. } // EMotionFX::MotionMatching