예제 #1
0
        static void Main(string[] args)
        {
            if (!Tests.Test())
            {
                Console.WriteLine("The test was failled.");
                return;
            }
            else
            {
                Console.WriteLine("The test was passed.");
            }
            Console.WriteLine("Входные данные: ");
            char specialSymbol = '$';
            var  inputLine     = Console.ReadLine() + specialSymbol;
            var  outputLine    = BWT.Direct(inputLine);
            var  result        = BWT.Inverse(outputLine);

            if (String.Equals(result + specialSymbol, inputLine))
            {
                Console.WriteLine("All right. Good job!");
            }
            else
            {
                Console.WriteLine("Oops... Error!\n");
            }
        }
예제 #2
0
        public static bool Test()
        {
            var firstCase   = "KAPKAPKAP$";
            var firstAnswer = "PKKKPP$AAA";

            if (!String.Equals(BWT.Direct(firstCase), firstAnswer))
            {
                return(false);
            }
            if (!String.Equals(BWT.Inverse(firstAnswer) + "$", firstCase))
            {
                return(false);
            }
            var secondCase   = "ANANAS$";
            var secondAnswer = "S$NNAAA";

            if (!String.Equals(BWT.Direct(secondCase), secondAnswer))
            {
                return(false);
            }
            if (!String.Equals(BWT.Inverse(secondAnswer) + "$", secondCase))
            {
                return(false);
            }
            var thirdCase   = "banana$";
            var thirdAnswer = "annb$aa";

            if (!String.Equals(BWT.Direct(thirdCase), thirdAnswer))
            {
                return(false);
            }
            if (!String.Equals(BWT.Inverse(thirdAnswer) + "$", thirdCase))
            {
                return(false);
            }
            return(true);
        }