예제 #1
0
 public void ThrowsWhenIndexOutOfRange()
 {
     Assert.Throws <ArgumentOutOfRangeException>(() =>
     {
         var builder = new BooleanArray.Builder();
         builder.Toggle(8);
     });
 }
예제 #2
0
 public void ThrowsWhenIndexOutOfRange()
 {
     Assert.Throws <ArgumentOutOfRangeException>(() =>
     {
         var builder = new BooleanArray.Builder();
         builder.Set(builder.Length, false);
     });
 }
예제 #3
0
                public void SetsExpectedBitsToFalse(int length, int index)
                {
                    var array = new BooleanArray.Builder()
                                .Resize(length)
                                .Set(index, false)
                                .Build();

                    Assert.False(array.GetValue(index).Value);
                }
예제 #4
0
                public void SetsExpectedBitToTrue(int length, int index)
                {
                    var array = new BooleanArray.Builder()
                                .Resize(length)
                                .Set(index, true)
                                .Build();

                    Assert.True(array.GetBoolean(index));
                }
예제 #5
0
                public void TogglesExpectedBitToTreu(int length, int index)
                {
                    var array = new BooleanArray.Builder()
                                .Resize(length)
                                .Set(index, false)
                                .Toggle(index)
                                .Build();

                    Assert.True(array.GetValue(index).Value);
                }
예제 #6
0
                public void TogglesExpectedBitToFalse(int length, int index)
                {
                    var array = new BooleanArray.Builder()
                                .Resize(length)
                                .Set(index, true)
                                .Toggle(index)
                                .Build();

                    Assert.False(array.GetBoolean(index));
                }
예제 #7
0
                public void SwapsExpectedBits()
                {
                    var array = new BooleanArray.Builder()
                                .Resize(8)
                                .Set(0, true)
                                .Swap(0, 7)
                                .Build();

                    Assert.False(array.GetBoolean(0));
                    Assert.True(array.GetBoolean(7));
                }
예제 #8
0
                public void IncrementsLength(int count)
                {
                    var builder = new BooleanArray.Builder();

                    for (var i = 0; i < count; i++)
                    {
                        builder.Append(true);
                    }

                    var array = builder.Build();

                    Assert.Equal(count, array.Length);
                }
예제 #9
0
                public void SetsAllBitsToDefault()
                {
                    var array = new BooleanArray.Builder()
                                .Resize(8)
                                .Set(0, true)
                                .Set(7, true)
                                .Clear()
                                .Build();

                    for (var i = 0; i < array.Length; i++)
                    {
                        Assert.False(array.GetValue(i).Value);
                    }
                }
예제 #10
0
                public void AppendsExpectedBit()
                {
                    var array1 = new BooleanArray.Builder()
                                 .Append(false)
                                 .Build();

                    Assert.False(array1.GetValue(0).Value);

                    var array2 = new BooleanArray.Builder()
                                 .Append(true)
                                 .Build();

                    Assert.True(array2.GetValue(0).Value);
                }
예제 #11
0
                public void SwapsExpectedBits()
                {
                    var array = new BooleanArray.Builder()
                                .Resize(8)
                                .Set(0, true)
                                .Swap(0, 7)
                                .Build();

                    Assert.False(array.GetValue(0).Value);
                    Assert.True(array.GetValue(7).Value);
                    #pragma warning disable CS0618
                    Assert.False(array.GetBoolean(0));
                    Assert.True(array.GetBoolean(7));
                    #pragma warning restore CS0618
                }
예제 #12
0
                public void UnsetBitsAreUnchanged(int index)
                {
                    var array = new BooleanArray.Builder()
                                .Resize(8)
                                .Set(index, true)
                                .Build();

                    for (var i = 0; i < 8; i++)
                    {
                        if (i != index)
                        {
                            Assert.False(array.GetBoolean(i));
                        }
                    }
                }
예제 #13
0
                public void SwapsExpectedBits()
                {
                    var array = new BooleanArray.Builder()
                                .AppendRange(Enumerable.Repeat(false, 8))
                                .Set(0, true)
                                .Swap(0, 7)
                                .Build();

                    Assert.True(array.GetValue(0).HasValue);
                    Assert.False(array.GetValue(0).Value);
                    Assert.True(array.GetValue(7).HasValue);
                    Assert.True(array.GetValue(7).Value);
                    #pragma warning disable CS0618
                    Assert.False(array.GetBoolean(0));
                    Assert.True(array.GetBoolean(7));
                    #pragma warning restore CS0618
                }
예제 #14
0
                public void UnsetBitsAreUnchanged(int index)
                {
                    var array = new BooleanArray.Builder()
                                .Resize(8)
                                .Set(index, true)
                                .Build();

                    for (var i = 0; i < 8; i++)
                    {
                        if (i != index)
                        {
                            Assert.False(array.GetValue(i).Value);
                            #pragma warning disable CS0618
                            Assert.False(array.GetBoolean(i));
                            #pragma warning restore CS0618
                        }
                    }
                }
예제 #15
0
                public void UnsetBitsAreUnchanged(int index)
                {
                    var array = new BooleanArray.Builder()
                                .AppendRange(Enumerable.Repeat(false, 8))
                                .Set(index, true)
                                .Build();

                    for (var i = 0; i < 8; i++)
                    {
                        if (i != index)
                        {
                            Assert.True(array.GetValue(i).HasValue);
                            Assert.False(array.GetValue(i).Value);
                            #pragma warning disable CS0618
                            Assert.False(array.GetBoolean(i));
                            #pragma warning restore CS0618
                        }
                    }
                }
예제 #16
0
 public void NewBatch()
 {
     _builder = new BooleanArray.Builder();
 }