Commit 859d34e3 authored by Gerard Gascón's avatar Gerard Gascón
Browse files

test: main model

parent f721cee7
Loading
Loading
Loading
Loading
+16 −11
Original line number Diff line number Diff line
@@ -3,26 +3,31 @@
		public int Score { private set; get; }

		public readonly int SpawnRate;
		private bool _needsToSpawn;
		public readonly int GrowIterations;

		public Model(int spawnRate) : this(0, spawnRate) { }
		public float GrowPercentage { private set; get; }

		public Model(int score, int spawnRate) {
		public bool NeedsToSpawn { private set; get; }
		public bool NeedsToAnimate { private set; get; }

		public Model(int spawnRate, int growIterations) : this(0, spawnRate, growIterations) { }

		public Model(int score, int spawnRate, int growIterations) {
			Score = score;
			SpawnRate = spawnRate;
			GrowIterations = growIterations;
		}

		public void AddScore() {
			Score++;
			if (Score % SpawnRate == 0)
				_needsToSpawn = true;
		}
			NeedsToAnimate = NeedsToSpawn = false;

		public bool NeedsToSpawn() {
			bool needs = _needsToSpawn;
			_needsToSpawn = false;

			return needs;
			if (Score % GrowIterations == 0) {
				GrowPercentage = Score / (float)(SpawnRate * GrowIterations);
				NeedsToAnimate = true;
			}
			if (Score % (SpawnRate * GrowIterations) == 0)
				NeedsToSpawn = true;
		}
	}
}
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ namespace Presenter {
			_model.AddScore();
			_view.UpdateView(_model.Score);

			if (_model.NeedsToSpawn()) {
			if (_model.NeedsToSpawn) {
				_spawner.SpawnRose();
			}
		}
+93 −0
Original line number Diff line number Diff line
using Domain;
using NUnit.Framework;

namespace Tests {
	public class ModelTests {
		[Test]
		public void NoPress_NoAnimation() {
			Model sut = new(20, 5);

			Assert.IsFalse(sut.NeedsToAnimate);
		}

		[Test]
		public void NotEnoughPresses_NoAnimation() {
			Model sut = new(20, 5);

			sut.AddScore();

			Assert.IsFalse(sut.NeedsToAnimate);
		}


		[Test]
		public void EnoughPresses_Animation() {
			Model sut = new(20, 5);

			for (int i = 0; i < 5; i++)
				sut.AddScore();

			Assert.IsTrue(sut.NeedsToAnimate);
		}

		[Test]
		public void NoPress_NoSpawn() {
			Model sut = new(20, 5);

			Assert.IsFalse(sut.NeedsToSpawn);
		}

		[Test]
		public void NotEnoughPresses_NoSpawn() {
			Model sut = new(20, 5);

			sut.AddScore();

			Assert.IsFalse(sut.NeedsToSpawn);
		}

		[Test]
		public void EnoughPresses_Spawn() {
			Model sut = new(20, 5);

			for (int i = 0; i < 20 * 5; i++) {
				sut.AddScore();
			}

			Assert.IsTrue(sut.NeedsToSpawn);
		}

		[Test]
		public void OneIteration_UpdatesGrowPercentage() {
			Model sut = new(5, 5);

			for (int i = 0; i < 5; i++) {
				sut.AddScore();
			}

			Assert.AreEqual(1f / 5f, sut.GrowPercentage);
		}

		[Test]
		public void AllIterations_GrowCompleted() {
			Model sut = new(5, 5);

			for (int i = 0; i < 5 * 5; i++) {
				sut.AddScore();
			}

			Assert.AreEqual(1f, sut.GrowPercentage);
		}

		[Test]
		public void MoreIterations_ResetsGrowPercentage() {
			Model sut = new(5, 5);

			for (int i = 0; i < 6 * 5; i++) {
				sut.AddScore();
			}

			Assert.AreEqual(1f / 5f, sut.GrowPercentage);
		}
	}
}
 No newline at end of file
+3 −0
Original line number Diff line number Diff line
fileFormatVersion: 2
guid: b81eb0f05b9b4ed38c6b881421132fdd
timeCreated: 1713269019
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ namespace View {
		public CustomInput CustomInput { private set; get; }

		private void Awake() {
			Model = new Model(20);
			Model = new Model(20, 5);

			IExpressionInput input = FindObjectOfType<ExpressionInput>();
			IExpressionInput visibility = FindObjectOfType<UIVisibility>();