public AlternatorDetail GetAlternatorDetail(Alternator alternator)
        {
            _skvaMultiplier = GetSKVAMultiplier();

            return(new AlternatorDetail
            {
                Alternator = alternator,
                AlternatorID = alternator.ID,
                SubtransientReactance1000 = GetSubtransientReactance1000(alternator),
                SubtransientReactanceCorrected = GetSubtransientReactanceCorrected(alternator),
                KWDerated = GetKWDerated(alternator),
                TransientKWVDip_10 = TransientKWVdip(alternator, 0.1m),
                TransientKWVDip_125 = TransientKWVdip(alternator, 0.125m),
                TransientKWVDip_15 = TransientKWVdip(alternator, 0.15m),
                TransientKWVDip_175 = TransientKWVdip(alternator, 0.175m),
                TransientKWVDip_20 = TransientKWVdip(alternator, 0.2m),
                TransientKWVDip_225 = TransientKWVdip(alternator, 0.225m),
                TransientKWVDip_25 = TransientKWVdip(alternator, 0.25m),
                TransientKWVDip_275 = TransientKWVdip(alternator, 0.275m),
                TransientKWVDip_30 = TransientKWVdip(alternator, 0.3m),
                TransientKWVDip_325 = TransientKWVdip(alternator, 0.325m),
                TransientKWVDip_35 = TransientKWVdip(alternator, 0.35m),
                SKVAMultiplier = _skvaMultiplier
            });
        }
        private decimal TransientKWVdip(Alternator alternator, decimal vDip)
        {
            var multiplier = _skvaMultiplier;
            int rounded;

            if (vDip <= 0.15m)
            {
                rounded = Convert.ToInt32((vDip / 0.15m * alternator.Percent15 * (decimal)multiplier) * 10);
                return(rounded / 10);
            }
            else if (vDip <= 0.25m)
            {
                decimal[] firstSeries  = { 0.25m, 0.15m };
                double[]  secondSeries = { alternator.Percent25, alternator.Percent15 };
                rounded = Convert.ToInt32(Statistics.lRegression(firstSeries, secondSeries, (double)vDip) * multiplier * 10);
                return(rounded / 10);
            }
            else
            {
                decimal[] firstSeries  = { 0.35m, 0.25m };
                double[]  secondSeries = { alternator.Percent35, alternator.Percent25 };
                rounded = Convert.ToInt32(Statistics.lRegression(firstSeries, secondSeries, (double)vDip) * multiplier * 10);
                return(rounded / 10);
            }
        }
        private decimal GetKWDerated(Alternator alternator)
        {
            decimal frequencyMultiplier = 1;

            if (int.Parse(_solutionSetup.Frequency.Value) == 50)
            {
                frequencyMultiplier = 5 / 6;
            }

            return(alternator.KWRating);
        }
        private IQueryable <Alternator> LoadAlternatorList()
        {
            var list = new List <Alternator>();

            for (int i = 1; i <= 5; i++)
            {
                var alternator = new Alternator
                {
                    ID = i,
                    ModifiedDateTime = DateTime.UtcNow,
                    Active           = true
                };

                list.Add(alternator);
            }

            return(list.AsQueryable());
        }
        public void AddAlternatorDetail_Successfully(int ID, string descriptionAdd)
        {
            var alternatorDto = new AlternatorDto
            {
                ID = ID,
                ModelDescription = descriptionAdd,
            };

            var addedAlternator = new Alternator
            {
                ID = 1,
                ModelDescription = descriptionAdd
            };

            _alternatorRepository.Add(Arg.Any <Alternator>()).Returns(addedAlternator);
            var actualResult = _adminProcessor.SaveAlternatorDetail(alternatorDto);

            Assert.AreEqual(addedAlternator.ID, actualResult.ID);
        }
        public void UpdateAlternatorDetail_Successfully(int ID, string descriptionAdd)
        {
            var alternatorDto = new AlternatorDto
            {
                ID = ID,
                ModelDescription = descriptionAdd,
            };

            var updatedAlternator = new Alternator
            {
                ID = ID,
                ModelDescription = descriptionAdd
            };

            _alternatorRepository.Find(ID).ReturnsForAnyArgs(LoadAlternatorList().FirstOrDefault(x => x.ID == alternatorDto.ID));
            _alternatorRepository.Update(Arg.Any <Alternator>()).Returns(updatedAlternator);
            var actualResult = _adminProcessor.SaveAlternatorDetail(alternatorDto);

            Assert.AreEqual(updatedAlternator.ID, actualResult.ID);
        }
        public void DeleteAlternator_Successfully(int ID, string userID)
        {
            var alternatorDto = new AlternatorDto
            {
                ID = ID
            };


            var updatedAlternator = new Alternator
            {
                ID     = ID,
                Active = false
            };

            _alternatorRepository.
            GetSingle(x => x.ID == alternatorDto.ID).
            ReturnsForAnyArgs(LoadAlternatorList().FirstOrDefault(x => x.ID == alternatorDto.ID));
            _alternatorRepository.Update(Arg.Any <Alternator>()).Returns(updatedAlternator);
            var actualResult = _adminProcessor.DeleteAlternator(alternatorDto.ID, userID);

            Assert.AreEqual(actualResult, true);
        }
示例#8
0
        private static IWeapon CreateFromRecognizedString(string recognizedName, IWeapon currentWeapon, int offsetX, int offsetY, float sensitivityScale)
        {
            var weaponName = recognizedName.FindMostSimilar(WeaponNamesToTypes.Keys);

            WeaponNamesToTypes.TryGetValue(weaponName, out var weaponType);

            var     inGameName = weaponType.GetWeaponName();
            IWeapon result;

            if (currentWeapon?.IsTheSameWeapon(inGameName) ?? weaponType == WeaponAL.Unknown)
            {
                return(currentWeapon);
            }

            var numOfMods = WeaponTypesToNumOfMods[weaponType];

            switch (weaponType)
            {
            case WeaponAL.Wingman:
            case WeaponAL.MASTIFF:
            case WeaponAL.KRABER:
            case WeaponAL.Longbow:
            case WeaponAL.Peacekeeper:
            case WeaponAL.TripleTake:
                result = new NonAdjustableWeapon(inGameName, 0, recognizedName, numOfMods);
                break;

            case WeaponAL.Havoc:
                result = new Havoc(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.Devotion:
                result = new Devotion(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.LStar:
                result = new LStar(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.Flatline:
                result = new Flatline(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.Hemlok:
                result = new Hemlok(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.Prowler:
                result = new Prowler(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.RE45:
                result = new RE45(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.R301:
                result = new R301(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.R99:
                result = new R99(inGameName, 1.5, recognizedName, numOfMods);
                break;

            case WeaponAL.Alternator:
                result = new Alternator(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.G7Scout:
                result = new G7Scout(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.Unknown:
            case WeaponAL.Spitfire:
            case WeaponAL.EVA8Auto:
            case WeaponAL.Mozambique:
            case WeaponAL.P2020:
                result = new RegularAdjustmentWeapon(inGameName, 2, recognizedName, numOfMods);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }


            result.SetOffsets(offsetX, offsetY);
            result.SetSensitivityScale(sensitivityScale);
            return(result);
        }
 private decimal GetSubtransientReactance1000(Alternator alternator)
 {
     return(1000 * alternator.SubTransientReactance / (decimal)(alternator.KVABase * _skvaMultiplier));
 }
 private decimal GetSubtransientReactanceCorrected(Alternator alternator)
 {
     return(alternator.SubTransientReactance / (decimal)_skvaMultiplier);
 }