public void CheckMakeGuessOldGuess() { var sn = new SecretNumber(); var guess = Math.Max((int)GetFieldValue(sn, "_number") ^ 3, 1); sn.MakeGuess(guess); Assert.IsTrue(sn.MakeGuess(guess) == Outcome.OldGuess, "MakeGuess returnerar inte Outcome.OldGuess då det gissade talet är samma som en tidigare gissning."); Assert.IsTrue(sn.Outcome == Outcome.OldGuess, "Egenskapen Outcome är inte Outcome.OldGuess då det gissade talet är samma som en tidigare gissning."); }
public void CheckInitialize() { var sn = new SecretNumber(); int number; do { sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); Assert.IsTrue(number >= 1 && number <= 100, "_number är inte ett tal i det slutna intervallet mellan 1 och 100."); } while (number >= 94); for (int i = 94; i <= 100; i++) { sn.MakeGuess(i); } sn.Initialize(); Assert.IsTrue(sn.Count == 0, "Count initieras inte till 0."); Assert.IsNull(sn.Guess, "Guess initieras inte till null."); Assert.IsTrue(sn.Outcome == Outcome.Indefinite, "Outcome initieras inte till Outcome.Indefinite."); foreach (var gn in sn.GuessedNumbers) { Assert.IsTrue(gn.Number == null && gn.Outcome == Outcome.Indefinite, "GuessedNumbers verkar inte tömmas på gammal information."); } }
private static bool CallMakeGuess(SecretNumber sn, int guess) { using (new NullOut()) { return(sn.MakeGuess(guess)); } }
public void CheckMakeGuessRight() { var sn = new SecretNumber(); Assert.IsTrue(sn.MakeGuess((int)GetFieldValue(sn, "_number")) == Outcome.Right, "MakeGuess returnerar inte Outcome.Right då det gissade talet är samma som det hemliga talet."); Assert.IsTrue(sn.Outcome == Outcome.Right, "Egenskapen Outcome är inte Outcome.Right efter en gissning på rätt tal gjorts."); }
public void CheckGuessProperty() { var sn = new SecretNumber(); var number = (int)GetFieldValue(sn, "_number"); while (number >= 94) { sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); } Assert.IsNull(sn.Guess, "Egenskapen Guess är inte null trots att ingen gissning gjorts."); sn.MakeGuess(number - 1); Assert.IsTrue(sn.Guess == number - 1, "Egenskapen Guess har inte värdet av den senaste gissningen då en gissning på ett för lågt tal gjorts."); sn.MakeGuess(number + 1); Assert.IsTrue(sn.Guess == number + 1, "Egenskapen Guess har inte värdet av den senaste gissningen då en gissning på ett för högt tal gjorts."); sn.MakeGuess(number); Assert.IsTrue(sn.Guess == number, "Egenskapen Guess har inte värdet av den senaste gissningen då en gissning på rätt tal gjorts."); }
public void CheckMakeGuesskNoMoreGuesses() { var sn = new SecretNumber(); var number = (int)GetFieldValue(sn, "_number"); while (number >= 94) { sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); } for (int i = 94; i <= 100; i++) { sn.MakeGuess(i); } var result = sn.MakeGuess(number); Assert.IsTrue(result == Outcome.NoMoreGuesses, "MakeGuess returnerar inte Outcome.NoMoreGuesses då fler gissningar än sju görs."); Assert.IsTrue(sn.Outcome == Outcome.NoMoreGuesses, "Egenskapen Outcome är inte Outcome.NoMoreGuesses då fler gissningar än sju görs."); }
protected void btnCheckNr_Click(object sender, EventArgs e) { if (!Page.IsValid) { return; } else { var guessedNr = int.Parse(inputBox.Text); var result = guessNr.MakeGuess(guessedNr); < -The name 'guessNr' does not exist in the current context
public void CheckCountProperty() { var sn = new SecretNumber(); var number = (int)GetFieldValue(sn, "_number"); while (number >= 94) { sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); } Assert.IsTrue(sn.Count == 0, "Egenskapen Count är inte 0 trots att ingen gissning gjorts."); int count = 0; for (int i = 94; i <= 100; i++) { sn.MakeGuess(i); Assert.IsTrue(sn.Count == ++count, String.Format("Egenskapen Count är inte {0} trots att {0} gissning(ar) gjorts.", count)); } sn.MakeGuess(number); Assert.IsTrue(sn.Count == 7, "Egenskapen Count slutar inte att räknas upp efter att sju gissningar gjorts och ytterligare gissningar görs."); }
public void CheckCanMakeGuessProperty() { var sn = new SecretNumber(); var number = (int)GetFieldValue(sn, "_number"); while (number >= 94) { sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); } for (int i = 94; i <= 100; i++) { Assert.IsTrue(sn.CanMakeGuess, "Egenskapen CanMakeGuess är inte true trots att alla gissningar inte gjorts."); sn.MakeGuess(i); } Assert.IsFalse(sn.CanMakeGuess, "Egenskapen CanMakeGuess är inte false trots att sju gissningar gjorts."); sn.Initialize(); sn.MakeGuess((int)GetFieldValue(sn, "_number")); Assert.IsFalse(sn.CanMakeGuess, "Egenskapen CanMakeGuess är inte false trots att en gissning på rätt tal gjorts."); }
public ActionResult Index([Bind(Include = "Guess")] ViewModel viewModel) { try { if (Session.Count > 0) { _secretNumber = (SecretNumber)Session["SecretNumber"]; viewModel.SecretNumber = _secretNumber; if (ModelState.IsValid) { var outcome = _secretNumber.MakeGuess(viewModel.Guess); switch (outcome) { case Outcome.Indefinite: break; case Outcome.High: viewModel.Status = _secretNumber.LastGuessedNumber.Number + " är för högt."; break; case Outcome.Low: viewModel.Status = _secretNumber.LastGuessedNumber.Number + " är för lågt"; break; case Outcome.OldGuess: viewModel.Status = "Du har redan gissat på detta talet "; break; case Outcome.Right: viewModel.Status = "Grattis, du klarade det på " + _secretNumber.Count + " försök!"; break; } if (!_secretNumber.CanMakeGuess) { viewModel.Status += " Det hemliga talet var " + _secretNumber.Number; } } return(View("Index", viewModel)); } else { throw new ApplicationException("Sessionen är felaktig"); } } catch (Exception e) { return(View("OutOfTime")); } }
public void CheckNumberProperty() { var sn = new SecretNumber(); Assert.IsNull(sn.Number, "Egenskapen Number returnerar inte null trots att det finns gissningar kvar."); var number = (int)GetFieldValue(sn, "_number"); while (number >= 94) { sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); } for (int i = 94; i <= 100; i++) { sn.MakeGuess(i); } Assert.IsTrue(sn.Number == number, "Egenskapen Number har inte samma värde som fältet _number trots att det inte finns några gissningar kvar."); }
public void CheckMakeGuessArgumentOfRangeExcceptionIfGuessGreaterThan100() { var sn = new SecretNumber(); try { sn.MakeGuess(101); throw new ApplicationException(); } catch (ArgumentOutOfRangeException) { // Eat! return; } catch { Assert.Fail("ArgumentOutOfRangeException kastas inte vid gissning på ett tal större än 100."); } }
public void CheckMakeGuessArgumentOfRangeExcceptionIfGuessLowerThan1() { var sn = new SecretNumber(); try { using (new NullOut()) { sn.MakeGuess(0); throw new ApplicationException(); } } catch (ArgumentOutOfRangeException) { // Eat! return; } catch { Assert.Fail("ArgumentOutOfRangeException kastas inte vid gissning på ett tal mindre än 1."); } }
public void CheckMakeGuessHigh() { var sn = new SecretNumber(); int number, prevNumber, loopCount = 5; do { prevNumber = (int)GetFieldValue(sn, "_number"); Thread.Sleep(100); sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); Assert.IsTrue(number >= 1 && number <= 100, "Initialize(): _number är inte ett tal i det slutna intervallet mellan 1 och 100."); if (--loopCount == 0) { Assert.IsTrue(prevNumber != number, "Initialize(): _number verkar inte slumpas"); return; } } while (number > 99); var result = sn.MakeGuess(100); Assert.IsTrue(result == Outcome.High, "MakeGuess returnerar inte Outcome.High då det gissade talet är högre än det hemliga talet."); Assert.IsTrue(sn.Outcome == Outcome.High, "Egenskapen Outcome är inte Outcome.High efter en gissning på ett för stort tal gjorts."); }
public void CheckInitialize() { var sn = new SecretNumber(); int number; do { sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); Assert.IsTrue(number >= 1 && number <= 100, "_number är inte ett tal i det slutna intervallet mellan 1 och 100."); } while (number >= 94); for (int i = 94; i <= 100; i++) { sn.MakeGuess(i); } sn.Initialize(); Assert.IsTrue(sn.GuessedNumbers.Count == 0, "Listan med gamla gissningar töms inte."); Assert.IsTrue(sn.Count == 0, "Count är inte till 0."); Assert.IsNull(sn.LastGuessedNumber.Number, "LastGuessedNumber.Number är inte satt till null."); Assert.IsTrue(sn.LastGuessedNumber.Outcome == Outcome.Indefinite, "LastGuessedNumber.Outcome är inte satt till Outcome.Indefinite."); }
protected void Button1_Click(object sender, EventArgs e) { if (IsValid) { if (IsPostBack) { SecretNumber thisGuess = SecretN; Outcome guess = thisGuess.MakeGuess(int.Parse(InputTextBox.Text)); if (thisGuess.CanMakeGuess) { Button1.Enabled = true; InputTextBox.Enabled = true; InputTextBox.Focus(); int currentGuess = int.Parse(InputTextBox.Text); bool exists = thisGuess._previousGuesses.Contains(currentGuess); if (!exists) { thisGuess._previousGuesses.Add(int.Parse(InputTextBox.Text)); //guessLabel.Text = thisGuess.Number.ToString(); if (guess == Outcome.High) { Label2.Text = "Du gissade för högt."; } else if (guess == Outcome.Low) { Label2.Text = "Du gissade för lågt."; } } else { Label2.Text = "Du har redan gissat på " + currentGuess; } } else if (guess == Outcome.Correct) { Button1.Enabled = false; InputTextBox.Enabled = false; Label2.Text = "GRATTIS"; ResetPlaceHolder.Visible = true; ResetButton.Focus(); Session.Clear(); thisGuess.Initialize(); } else if (guess == Outcome.NoMoreGuesses) { Button1.Enabled = false; InputTextBox.Enabled = false; Label2.Text = "Ledsen, inga gissningar kvar. Talet var " + thisGuess.Number; ResetPlaceHolder.Visible = true; ResetButton.Focus(); thisGuess.Initialize(); } SecretN = thisGuess; guessLabel.Text = "Tidigare gissningar: " + String.Join(", ", thisGuess.PreviousGuesses); } } }