Beispiel #1
0
        static void Main(string[] args)
        {
            var git = new Git(3); // Начать следить за тремя файлами

            //git.Checkout(3, 0); //ArgEx
            //git.Checkout(0, 3); //ArgOutOfRangeEx
            //git.Checkout(0, 0); //ArgEx
            git.Commit();       //-1
            git.Checkout(0, 0); //ArgEx
            git.Update(0, 5);
            git.Commit();
            //git.Checkout(0, 0);
            git.Update(0, 5);     // Записать в файл № 0 значение 5
            git.Commit();         // Закоммитить результат. Вернётся номер коммита — 0.
            git.Update(0, 6);
            git.Checkout(0, 0);   // Посмотреть значение файла № 0 в коммите № 0. Вернётся значение 5.*/
            var commandNames = Regex.Matches(Console.ReadLine(), @"\w+").Cast <Match>().Select(x => x.Value).ToArray();
            var commandArgs  = Regex.Matches(Console.ReadLine(), @"\[([\d,]*)\]").Cast <Match>()
                               .Select(
                x => x.Groups[1].Value
                .Split(',')
                .Where(y => !string.IsNullOrEmpty(y))
                .Select(int.Parse)
                .ToArray()
                ).ToArray();


            var resultArray = new int?[commandArgs.Length];

            /*Git git = null;
             *
             * for (int i = 0; i < commandNames.Length; i++)
             * {
             *  switch (commandNames[i].ToLower())
             *  {
             *      case "git":
             *          git = new Git(commandArgs[i][0]);
             *          resultArray[i] = null;
             *          break;
             *      case "commit":
             *          resultArray[i] = git.Commit();
             *          break;
             *      case "update":
             *          git.Update(commandArgs[i][0], commandArgs[i][1]);
             *          resultArray[i] = null;
             *          break;
             *      case "checkout":
             *          resultArray[i] = git.Checkout(commandArgs[i][0], commandArgs[i][1]);
             *          break;
             *      default:
             *          throw new ArgumentException("lol");
             *  }
             * }
             *
             * Console.WriteLine(
             *  $"[{string.Join<string>(",", resultArray.Select(x => x.HasValue ? x.Value.ToString() : "null"))}]");
             */
        }
Beispiel #2
0
        public void NoUpdate_Commit_Checkout()
        {
            var git = new Git(3);

            git.Commit();
            Assert.AreEqual(0, git.Checkout(0, 0));
            Assert.AreEqual(0, git.Checkout(0, 1));
            Assert.AreEqual(0, git.Checkout(0, 2));
        }
Beispiel #3
0
 public void CommitTest_ValidData_RightAnswer_1()
 {
     git = new Git(10); // Начать следить за тремя файлами
     git.Update(0, 1);
     git.Update(1, 2);
     Assert.True(git.Commit() == 0); // Закоммитить результат. Вернётся номер коммита — 0.
     git.Update(0, 2);
     Assert.True(git.Commit() == 1); // Закоммитить результат. Вернётся номер коммита — 0.
     git.Update(0, 6);               // Записать в файл № 0 значение 5
     Assert.True(git.Commit() == 2); // Закоммитить результат. Вернётся номер коммита — 0.
     Assert.True(git.Checkout(0, 0) == 1);
     Assert.True(git.Checkout(1, 0) == 2);
     Assert.True(git.Checkout(2, 0) == 6);
 }
Beispiel #4
0
 public void SimpleTest()
 {
     _git.Update(0, 5);
     Assert.AreEqual(0, _git.Commit(), "Commit return");
     _git.Update(0, 6);
     Assert.AreEqual(5, _git.Checkout(0, 0), "Checkout");
 }
Beispiel #5
0
        public void YouTried()
        {
            sut.Update(0, 6);
            sut.Update(0, 5);
            sut.Commit();
            sut.Update(0, 7);

            Assert.AreEqual(5, sut.Checkout(0, 0));
        }
Beispiel #6
0
 public void YouTried()
 {
     try {
         sut.Checkout(0, 1);
     }
     catch (ArgumentException) {
         Assert.True(true, "OK");
     }
     catch (Exception e) {
         Assert.Fail(e.Message);
     }
     Assert.True(true, "Никто не написал этот тест...");
 }
Beispiel #7
0
        static void Main(string[] args)
        {
            string cn           = "[\"Git\",\"Update\",\"Commit\",\"Update\",\"Checkout\",\"Update\",\"Commit\",\"Checkout\"]";
            string ca           = "[[3],[0,5],[],[0,6],[0,0],[1,256],[],[1,2]";
            var    commandNames = Regex.Matches(cn, @"\w+").Cast <Match>().Select(x => x.Value).ToArray();
            var    commandArgs  = Regex.Matches(ca, @"\[([\d,]*)\]").Cast <Match>()
                                  .Select(
                x => x.Groups[1].Value
                .Split(',')
                .Where(y => !string.IsNullOrEmpty(y))
                .Select(int.Parse)
                .ToArray()
                ).ToArray();


            var resultArray = new int?[commandArgs.Length];

            Git git = null;

            for (int i = 0; i < commandNames.Length; i++)
            {
                switch (commandNames[i].ToLower())
                {
                case "git":
                    git            = new Git(commandArgs[i][0]);
                    resultArray[i] = null;
                    break;

                case "commit":
                    resultArray[i] = git.Commit();
                    break;

                case "update":
                    git.Update(commandArgs[i][0], commandArgs[i][1]);
                    resultArray[i] = null;
                    break;

                case "checkout":
                    resultArray[i] = git.Checkout(commandArgs[i][0], commandArgs[i][1]);
                    break;

                default:
                    throw new ArgumentException("lol");
                }
            }

            Console.WriteLine(
                $"[{string.Join<string>(",", resultArray.Select(x => x.HasValue ? x.Value.ToString() : "null"))}]");
        }
Beispiel #8
0
        public void Update_Commit_Each_Once()
        {
            var git = new Git(5);

            for (var i = 0; i < 5; i++)
            {
                git.Update(i, i + 1);
                git.Commit();
            }

            for (var i = 0; i < 5; i++)
            {
                Assert.AreEqual(i + 1, git.Checkout(i, i));
            }
        }
Beispiel #9
0
        public void Update_Commit_Update_Checkout()
        {
            sut.Update(0, 5);
            var com = sut.Commit();

            sut.Update(0, 6);
            var check = sut.Checkout(0, 0);

            Assert.AreEqual(0, com);
            Assert.AreEqual(5, check);
        }
Beispiel #10
0
 public void Checkout_NoUpdate_Commit_ReturnsZero()
 {
     git = new Git(10);
     git.Commit();
     Assert.True(git.Checkout(0, 0) == 0);
 }
Beispiel #11
0
 public void Checkout_CommitNotExist_ThrowExeption()
 {
     git = new Git(4);
     git.Checkout(0, 0);
     Assert.Fail("no exeption throw");
 }