Ejemplo n.º 1
0
        internal static TCondition AddTestCondition <TCondition, TData>(GameObject go,
                                                                        int traitIndex = 0, float value = 0f)
            where TCondition : Component, ITestCondition <TData, float>
        {
            var condition = go.AddComponent <TCondition>();

            condition.traitName = DatabaseTestData.TraitNameForIndex <TData>(traitIndex);
            condition.value     = value;
            return(condition);
        }
        public void SetupBeforeEach()
        {
            m_GameObject     = new GameObject("blank");
            m_ConditionsRoot = m_GameObject.AddComponent <TestMRObject>();
            m_Db.GetTraitProvider(out m_FloatTraits);

            // clear and repopulate the database with a standard set of test data before every test
            m_Db.Clear();
            DatabaseTestData.PopulateDatabase(m_Db, 3);

            SlowTaskModule.instance.ClearTasks();
        }
        public void MatchRatingDataTransform_SingleEntry()
        {
            DatabaseTestData.PopulateDatabase(m_Db, 3);
            m_GameObject.AddTestFloatCondition();
            m_GameObject.AddTestVector2Condition(0.9f);
            SetupObject(m_GameObject);

            // TODO - better test for this stage now that it filters indices
            MatchRatingDataTransform.RateConditionMatches(m_Conditions, m_TraitCache, m_ConditionRatings);
            Assert.AreEqual(7, m_ConditionRatings[typeof(float)][0].Count);
            Assert.AreEqual(7, m_ConditionRatings[typeof(Vector2)][0].Count);
        }
        public void MatchRatingDataTransform_NonWorkingIndicesNotProcessed()
        {
            DatabaseTestData.PopulateDatabase(m_Db, 3);
            m_GameObject.AddTestFloatCondition();
            m_GameObject.AddTestVector2Condition(0.9f);
            SetupObject(m_GameObject);

            var dataTransform = new MatchRatingDataTransform
            {
                WorkingIndices = new List <int> {
                    1
                },
                Input1 = new [] { m_Conditions, m_Conditions },
                Input2 = new [] { m_TraitCache, m_TraitCache },
                Output = new [] { m_ConditionRatings, new ConditionRatingsData(m_Conditions) },
            };

            dataTransform.Complete();
            Assert.Zero(dataTransform.Output[0][typeof(float)][0].Count);          // index 0 wasn't processed, so no matches
            Assert.Zero(dataTransform.Output[0][typeof(Vector2)][0].Count);
            // index 1 was processed, so has matches.  That we expect 7 is calculated by hand from the test data.
            Assert.AreEqual(7, dataTransform.Output[1][typeof(float)][0].Count);
            Assert.AreEqual(7, dataTransform.Output[1][typeof(Vector2)][0].Count);
        }
 public virtual void Initialize(int traitIndex)
 {
     traitName = DatabaseTestData.TraitNameForIndex <T>(traitIndex);
 }