public void TestSpawnTable() { var gameObject1 = new GameObject(); gameObject1.name = "1"; var gameObject2 = new GameObject(); gameObject2.name = "2"; var fixedRandom = new FixedRandom(); fixedRandom.values.Add(.2f); fixedRandom.values.Add(.7f); var spawnTable = gameObject1.AddComponent <SpawnTable>(); spawnTable.random = fixedRandom; spawnTable.spawnItems.Clear(); spawnTable.spawnItems.Add(new SpawnTable.Item(gameObject1, 0.5f)); spawnTable.spawnItems.Add(new SpawnTable.Item(gameObject2, 0.5f)); // FUTURE: add more unit tests if needed var nextSpawn = spawnTable.NextSpawn(); Assert.AreEqual("1", nextSpawn.name); nextSpawn = spawnTable.NextSpawn(); Assert.AreEqual("2", nextSpawn.name); GameObject.DestroyImmediate(gameObject1); }
public void TestFixedRandom() { var fixedRandom = new FixedRandom(); fixedRandom.values.Add(0.5f); fixedRandom.values.Add(0.7f); fixedRandom.values.Add(0.2f); Assert.AreEqual(0.5f, fixedRandom.Value); Assert.AreEqual(0.7f, fixedRandom.Value); Assert.AreEqual(0.2f, fixedRandom.Value); Assert.AreEqual(0.5f, fixedRandom.Value); }
public void UnitTests() { var fixedRandom = new FixedRandom(); var test = new WeightedRandom(fixedRandom); var w1 = new Weight(1.0f); var w2 = new Weight(0.5f); var w3 = new Weight(0.25f); var totalWeight = w1.Value + w2.Value + w3.Value; test.Add(w1); test.Add(w2); test.Add(w3); Assert.AreEqual(w1, test.ChooseFactor(.5f / totalWeight)); Assert.AreEqual(w1, test.ChooseFactor(.9f / totalWeight)); Assert.AreEqual(w2, test.ChooseFactor(1.1f / totalWeight)); Assert.AreEqual(w3, test.ChooseFactor(1.6f / totalWeight)); }
public void TestSpawner() { var gameObject1 = new GameObject(); gameObject1.name = "1"; var gameObject2 = new GameObject(); gameObject2.name = "2"; var fixedRandom = new FixedRandom(); fixedRandom.values.Add(.2f); fixedRandom.values.Add(.7f); var spawner = gameObject1.AddComponent <Spawner>(); spawner.spawnAction = AddSpawn; spawner.random = fixedRandom; spawner.spawnItems.Clear(); spawner.spawnItems.Add(new SpawnTable.Item(gameObject1, 0.5f)); spawner.spawnItems.Add(new SpawnTable.Item(gameObject2, 0.5f)); spawner.SpawnTime = 1.0f; spawner.OnUpdate(new TimeSlice(0.5f)); Assert.AreEqual(0, spawnList.Count); spawner.OnUpdate(new TimeSlice(1.0f)); Assert.AreEqual(1, spawnList.Count); spawner.OnUpdate(new TimeSlice(.9f)); Assert.AreEqual(1, spawnList.Count); spawner.OnUpdate(new TimeSlice(.3f)); Assert.AreEqual(2, spawnList.Count); // Unity appends "(Clone)" to objects, so check the first character Assert.AreEqual('1', spawnList[0].name[0]); Assert.AreEqual('2', spawnList[1].name[0]); }