Esempio n. 1
0
        public void OpsOfCombinedGroupsMoveTo1stGroup()
        {
            var ops = new DeltaInsertOp[] {
                new DeltaInsertOp("this is code"),
                new DeltaInsertOp("\n",
                                  new OpAttributes {
                    CodeBlock = true
                }),
                new DeltaInsertOp("this is code TOO!"),
                new DeltaInsertOp("\n",
                                  new OpAttributes {
                    CodeBlock = true
                }),
                new DeltaInsertOp("\n",
                                  new OpAttributes {
                    Blockquote = true
                }),
                new DeltaInsertOp("\n",
                                  new OpAttributes {
                    Blockquote = true
                }),
                new DeltaInsertOp("\n"),
                new DeltaInsertOp("\n",
                                  new OpAttributes {
                    Header = 1
                }),
            };
            var pairs  = Grouper.PairOpsWithTheirBlock(ops);
            var groups = Grouper.GroupConsecutiveSameStyleBlocks(pairs);
            //console.log(groups);
            var act = Grouper.ReduceConsecutiveSameStyleBlocksToOne(groups);

            //console.log(act);
            //console.log(JSON.stringify(act));
            act.Should().BeEquivalentTo(new Group[] {
                new BlockGroup(ops[1],
                               new DeltaInsertOp[] { ops[0], ops[6], ops[2] }),
                new BlockGroup(ops[4],
                               new DeltaInsertOp[] { ops[6], ops[6] }),
                new InlineGroup(new DeltaInsertOp[] { ops[6] }),
                new BlockGroup(ops[7], new DeltaInsertOp[] { ops[6] })
            }, opts => opts.RespectingRuntimeTypes().WithStrictOrdering());
        }