예제 #1
0
        public void ComputeNPV_ValidationCheck_Test()
        {
            // Arrange
            var npvService = new NpvService();

            // Act
            var sut = npvService.ComputeNPV(1000, -1, new List <decimal>());

            // Assert
            Assert.NotEmpty(sut.Errors);
            Assert.Equal(sut.Errors[0].Code, ErrorCodes.NPVServiceError001);
            Assert.Equal(sut.Errors[1].Code, ErrorCodes.NPVServiceError002);
            Assert.Equal(sut.Errors[2].Code, ErrorCodes.NPVServiceError004);
        }
예제 #2
0
        public void ComputeNPVTest()
        {
            // Arrange
            var npvService = new NpvService();

            // Act
            var sut = npvService.ComputeNPV(-1000, 2, new List <decimal>
            {
                100,
                200,
                300
            });

            // Assert
            Assert.Empty(sut.Errors);
            Assert.Equal(572.96967229798493791980460004m, sut.PresentValueOfExpectedCashflows); //expected values should be computed manually
            Assert.Equal(-427.03032770201506208019539996m, sut.NetPresentValue);                //expected values should be computed manually
        }