示例#1
0
        public void TestInsert()
        {
            var spread = new Spread <int>(0);

            spread.AssignFrom(sampleData);

            var list = spread.ToList();

            int oldSliceCount = spread.SliceCount;

            spread.Insert(0, 12);
            list.Insert(0, 12);
            Assert.AreEqual(oldSliceCount + 1, spread.SliceCount, "SliceCount after insert at index 0 doesn't match.");

            for (int i = 0; i < spread.SliceCount; i++)
            {
                Assert.AreEqual(list[i], spread[i], "Insert at index 0 failed.");
            }

            oldSliceCount = spread.SliceCount;
            spread.Insert(oldSliceCount, 13);
            list.Insert(oldSliceCount, 13);
            Assert.AreEqual(oldSliceCount + 1, spread.SliceCount, "SliceCount after insert at end of spread doesn't match.");

            for (int i = 0; i < spread.SliceCount; i++)
            {
                Assert.AreEqual(list[i], spread[i], "Insert at end of spread failed.");
            }
        }
示例#2
0
文件: Store.cs 项目: vnmone/vvvv-sdk
 public virtual void Alter(int i, int incr, int binSize, ref Spread <Spread <T> > buffer)
 {
     if (FSet[i] && buffer.SliceCount > 0)
     {
         buffer[FId[i]] = (Spread <T>)FIn.GetRange(incr, binSize);
     }
     if (FRemove[i] && buffer.SliceCount > 0)
     {
         buffer.RemoveAt(FId[i]);
     }
     if (FInsert[i])
     {
         int id = VMath.Zmod(FId[i], buffer.SliceCount + 1);
         if (buffer.SliceCount > 0 || id < buffer.SliceCount)
         {
             buffer.Insert(id, (Spread <T>)FIn.GetRange(incr, binSize));
         }
         else
         {
             buffer.Add((Spread <T>)FIn.GetRange(incr, binSize));
         }
     }
 }