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"))}]"); */ }
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)); }
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); }
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"); }
public void YouTried() { sut.Update(0, 6); sut.Update(0, 5); sut.Commit(); sut.Update(0, 7); Assert.AreEqual(5, sut.Checkout(0, 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, "Никто не написал этот тест..."); }
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"))}]"); }
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)); } }
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); }
public void Checkout_NoUpdate_Commit_ReturnsZero() { git = new Git(10); git.Commit(); Assert.True(git.Checkout(0, 0) == 0); }
public void Checkout_CommitNotExist_ThrowExeption() { git = new Git(4); git.Checkout(0, 0); Assert.Fail("no exeption throw"); }