/// <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(); } }
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()); }