public void TestBasicTouch() { BasicTouch action = new BasicTouch(); State state = Utility.CreateDefaultState(); // Test that if not enough CP, we can't use it TestBlocks.TestCannotUseWithCP(action, state, 0); State success = action.Activate(state, true); State failure = action.Activate(state, false); // Test that it uses the correct amount of CP Assert.AreEqual <uint>(state.CP - action.RequiredCP, success.CP); Assert.AreEqual <uint>(state.CP - action.RequiredCP, failure.CP); // Test that it uses the correct amount of durability. Assert.AreEqual <uint>(state.Durability - action.BaseDurability, success.Durability); Assert.AreEqual <uint>(state.Durability - action.BaseDurability, failure.Durability); // Test that failure does not increase quality, but success does. Assert.AreEqual <uint>(state.Quality, failure.Quality); Assert.AreEqual <uint>(state.Quality + Compute.Quality(state, action.BaseEfficiency), success.Quality); // Test that nothing changed except durability, quality, CP, and condition. success.Condition = failure.Condition = state.Condition; success.Durability = failure.Durability = state.Durability; success.Quality = failure.Quality = state.Quality; success.CP = failure.CP = state.CP; Assert.AreEqual <State>(state, success); Assert.AreEqual <State>(state, failure); }
public void TestBasicSynthesis() { BasicSynthesis action = new BasicSynthesis(); State state = Utility.CreateDefaultState(); State success = action.Activate(state, true); State failure = action.Activate(state, false); // Test that we can use it even with 0 CP TestBlocks.TestCanUseWithCP(action, state, 0); // Test that it doesn't use any CP Assert.AreEqual <uint>(state.CP, success.CP); Assert.AreEqual <uint>(state.CP, failure.CP); // Test that it uses the correct amount of durability. Assert.AreEqual <uint>(state.Durability - action.BaseDurability, success.Durability); Assert.AreEqual <uint>(state.Durability - action.BaseDurability, failure.Durability); // Test that failure does not increase progress, but success does. Assert.AreEqual <uint>(state.Progress, failure.Progress); Assert.AreEqual <uint>(state.Progress + Compute.Progress(state, action.BaseEfficiency), success.Progress); // Test that nothing changed except durability, progress, and condition. success.Condition = failure.Condition = state.Condition; success.Durability = failure.Durability = state.Durability; success.Progress = failure.Progress = state.Progress; bool equal = state.Equals(success); Assert.AreEqual <State>(state, success); Assert.AreEqual <State>(state, failure); }