public void ApplyMask()
        {
            string inputMask = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXX0X";

            Day14Extensions.ApplyMask(11, inputMask).Should().Be(73);
            Day14Extensions.ApplyMask(101, inputMask).Should().Be(101);
            Day14Extensions.ApplyMask(0, inputMask).Should().Be(64);
        }
 public void GetBitAtIndexTest()
 {
     Day14Extensions.GetBitAtIndex(0, 0).Should().Be(0);
     Day14Extensions.GetBitAtIndex(0, 1).Should().Be(0);
     Day14Extensions.GetBitAtIndex(0, 36).Should().Be(0);
     Day14Extensions.GetBitAtIndex(1, 0).Should().Be(1);
     Day14Extensions.GetBitAtIndex(1, 1).Should().Be(0);
     Day14Extensions.GetBitAtIndex(1, 2).Should().Be(0);
     Day14Extensions.GetBitAtIndex(2, 0).Should().Be(0);
     Day14Extensions.GetBitAtIndex(2, 1).Should().Be(1);
     Day14Extensions.GetBitAtIndex(2, 2).Should().Be(0);
 }
 public void ApplyMask2()
 {
     Day14Extensions.ApplyMask2(42, "000000000000000000000000000000X1001X").Should().BeEquivalentTo(new List <int>()
     {
         26, 27, 58, 59
     });
     Day14Extensions.ApplyMask2(26, "00000000000000000000000000000000X0XX")
     .Should()
     .BeEquivalentTo(new List <int>()
     {
         16, 17, 18, 19, 24, 25, 26, 27
     });
 }