Ejemplo n.º 1
0
        public void TestSimpleActions()
        {
            var lines   = new[] { "abc", "aba" };
            var storage = new SafeStorage(lines);

            Assert.AreEqual(new Tuple <int, string>(0, "az"), storage.ReplaceFirst("bc", "z"));
            Assert.AreEqual(new Tuple <int, string>(0, "zz"), storage.ReplaceFirst("a", "z"));
            Assert.AreEqual(new Tuple <int, string>(1, "ba"), storage.ReplaceFirst("a", ""));
            Assert.AreEqual(new Tuple <int, string>(0, ""), storage.ReplaceFirst("zz", ""));
        }
Ejemplo n.º 2
0
        private string GetResponse(HttpListenerRequest request)
        {
            var form = File.ReadAllText("form.html");

            string data;

            using (var reader = new StreamReader(request.InputStream))
                data = reader.ReadToEnd();
            var post = HttpUtility.ParseQueryString(data);

            string word    = post["word"];
            string replace = post["replace"];

            if (word == null || replace == null)
            {
                form = string.Format(form, "(no result)");
            }
            else
            {
                var result = storage.ReplaceFirst(word, replace);

                if (result == null)
                {
                    form = string.Format(form, "(null)");
                }
                else
                {
                    form = string.Format(form, result.ToString());
                }
            }

            return(form);
        }
Ejemplo n.º 3
0
        public void TestOneThreadRun()
        {
            var lines = new string[(int)1e5];

            for (int i = 0; i < lines.Length; i++)
            {
                lines[i] = random.GenerateRandomWord(10, 3);
            }
            var storage = new SafeStorage(lines);

            for (int i = 0; i < (int)2e6; i++)
            {
                storage.ReplaceFirst(random.GenerateRandomWord(3, 3), random.GenerateRandomWord(3, 3));
            }
        }
Ejemplo n.º 4
0
        public void TestMultiThreadRun()
        {
            var lines = new string[(int)2e5];

            for (int i = 0; i < lines.Length; i++)
            {
                lines[i] = random.GenerateRandomWord(10, 3);
            }
            var storage = new SafeStorage(lines);

            var tasks = new List <Task>();

            for (int i = 0; i < (int)2e6; i++)
            {
                var task = new Task(() => storage.ReplaceFirst(
                                        random.GenerateRandomWord(3, 3), random.GenerateRandomWord(3, 3)));
                task.Start();
                tasks.Add(task);
            }

            Task.WaitAll(tasks.ToArray());
        }