public Property MessageWithoutMarkerStaysIntact()
        {
            var markerRe = new Regex(@"\(\d+x\d+\)");
            var messagesWithoutMarker = Arb.Generate <string>().Where(msg => !string.IsNullOrEmpty(msg) && !markerRe.IsMatch(msg));
            var reader = new ExplosiveReader();

            return(Prop.ForAll(messagesWithoutMarker.ToArbitrary(), msg => msg == reader.Decompress(msg)));
        }
        public string Solve(string[] input)
        {
            string message      = string.Join("", input);
            var    reader       = new ExplosiveReader();
            var    decompressed = reader.Decompress(message);

            return(decompressed.Length.ToString());
        }
Example #3
0
        public void MarkerInRepeatedSequenceIsNotExploded(string original, string decompressed)
        {
            var reader = new ExplosiveReader();

            Assert.Equal(decompressed, reader.Decompress(original));
        }
Example #4
0
        public void MessageWithMarkerIsDecompressed(string original, string decompressed)
        {
            var reader = new ExplosiveReader();

            Assert.Equal(decompressed, reader.Decompress(original));
        }