using NUnit.Framework;
using PkmnLibSharp.Library;

namespace PkmnLibSharpTests.Library
{
    public class NatureTests
    {
        [Test]
        public void ConstructDestruct()
        {
            var nature = new Nature(Statistic.Attack, Statistic.Defense);
            nature.Dispose();
        }
        
        [Test]
        public void GetIncreasedStat()
        {
            var nature = new Nature(Statistic.Attack, Statistic.Defense);
            Assert.AreEqual(Statistic.Attack, nature.IncreasedStat);
            nature.Dispose();
        }
        [Test]
        public void GetIncreasedModifier()
        {
            var nature = new Nature(Statistic.Attack, Statistic.Defense);
            Assert.AreEqual(1.1f, nature.IncreasedModifier);
            nature.Dispose();
        }
        [Test]
        public void GetDecreasedStat()
        {
            var nature = new Nature(Statistic.Attack, Statistic.Defense);
            Assert.AreEqual(Statistic.Defense, nature.DecreasedStat);
            nature.Dispose();
        }
        [Test]
        public void GetDecreasedModifier()
        {
            var nature = new Nature(Statistic.Attack, Statistic.Defense);
            Assert.AreEqual(0.9f, nature.DecreasedModifier);
            nature.Dispose();
        }
        [Test]
        public void GetStatModifier()
        {
            var nature = new Nature(Statistic.Attack, Statistic.Defense);
            Assert.AreEqual(0.9f, nature.GetStatModifier(Statistic.Defense));
            Assert.AreEqual(1f, nature.GetStatModifier(Statistic.SpecialAttack));
            nature.Dispose();
        }

    }
}