Exemplo n.º 1
0
 /// <summary>
 /// RoleValueとSequenceの対応表からReelSequenceを取得する
 /// </summary>
 /// <param name="sequenceTable"></param>
 internal ReelSequence(IReadOnlyDictionary <RoleValue, Sequence> sequenceTable)
 {
     //すべてのRoleValueが揃ったDictionaryの場合はそのまま採用
     if (NullTemplate.SequenceEqual(sequenceTable))
     {
         m_sequenceTable = sequenceTable.ToDictionary();
     }
     //揃っていなかった場合は不足分を補う
     else
     {
         m_sequenceTable = sequenceTable.DictionaryCombine(Empty(), (sq, _) => sq, () => DOTween.Sequence(), () => DOTween.Sequence()).ToDictionary();
     }
 }
Exemplo n.º 2
0
        public void NullTest()
        {
            InstructionTemplate nullTemplate = new NullTemplate();
            var template  = new RegisterReadTemplate();
            var templates = new List <InstructionTemplate> {
                template, nullTemplate
            };
            var root       = new RegisterRead(new VirtualRegister());
            var trueTarget =
                this.labelFactory.GetLabel(new Tree(new UnitImmediateValue(), new UnconditionalJump(null)));
            var controlFlow = new ConditionalJump(trueTarget, null);
            var tree        = new Tree(root, controlFlow);
            var selector    = new InstructionSelector(templates);
            var ins         = selector.GetInstructions(tree);

            Assert.AreEqual(2, ins.Count());
        }