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()); }
public void MarkerInRepeatedSequenceIsNotExploded(string original, string decompressed) { var reader = new ExplosiveReader(); Assert.Equal(decompressed, reader.Decompress(original)); }
public void MessageWithMarkerIsDecompressed(string original, string decompressed) { var reader = new ExplosiveReader(); Assert.Equal(decompressed, reader.Decompress(original)); }