private void load(OsuColour colours, BeatmapDifficultyCache difficultyCache) { Colour = colours.BlueLighter; if (gameplayState != null) { performanceCalculator = gameplayState.Ruleset.CreatePerformanceCalculator(); clonedMods = gameplayState.Mods.Select(m => m.DeepClone()).ToArray(); scoreInfo = new ScoreInfo(gameplayState.Score.ScoreInfo.BeatmapInfo, gameplayState.Score.ScoreInfo.Ruleset) { Mods = clonedMods }; var gameplayWorkingBeatmap = new GameplayWorkingBeatmap(gameplayState.Beatmap); difficultyCache.GetTimedDifficultyAttributesAsync(gameplayWorkingBeatmap, gameplayState.Ruleset, clonedMods, loadCancellationSource.Token) .ContinueWith(task => Schedule(() => { timedAttributes = task.GetResultSafely(); IsValid = true; if (lastJudgement != null) { onJudgementChanged(lastJudgement); } }), TaskContinuationOptions.OnlyOnRanToCompletion); } }
public ActionResult PerformanceTest() { var performanceCalculator = new PerformanceCalculator(); var recordsCount = 1000; var databaseTypes = new[] { DatabaseType.Memory, DatabaseType.Xml, DatabaseType.LinqToXml, DatabaseType.ADO, DatabaseType.LinqToSql, DatabaseType.EntityFramework, DatabaseType.BLToolkit, DatabaseType.NHibernate }; var performanceResult = performanceCalculator.CalculatePerformance(recordsCount, databaseTypes); var performanceResultViewModel = new PerformanceResultViewModel { RecordsCount = recordsCount, RepositoriesResults = performanceResult }; return(View(performanceResultViewModel)); }
// Use this for initialization void Start() { controller = GetComponent <MovementController>(); lastTarget = target; //self = transform; server.clients.Add(this); grid = server.grid; recentlyPerformance = GetComponent <PerformanceCalculator>(); recentlyPerformance.AddPositions(transform.position); controller.setMovementSpeed(recentlyPerformance.getSpeed()); }
public void CalculateTest() { var calculator = new PerformanceCalculator(); var quotes = MockQuotes("AAPL"); var result = calculator.Calculate(quotes); var expected = new List <decimal> { 0, 10, 20, 40, 30, 15, 0 }; Assert.Equal(expected, result.Items.Select(x => x.Value).ToList()); }
public static float GetPP(Stream beatmapStream, PlayResult result, bool ifSs) { Ruleset ruleset = result.Mode switch { 0 => new OsuRuleset(), 1 => new TaikoRuleset(), 2 => new CatchRuleset(), 3 => new ManiaRuleset(), _ => throw new Exception("Invalid mode"), }; BeatmapInfo beatmapInfo = new BeatmapInfo() { BaseDifficulty = new BeatmapDifficulty() { DrainRate = result.BeatmapData.DrainRate, ApproachRate = result.BeatmapData.ApproachRate, CircleSize = result.BeatmapData.CircleSize, OverallDifficulty = result.BeatmapData.OverallDifficulty, }, Ruleset = ruleset.RulesetInfo, }; FakeWorkingBeatmap beatmap = new FakeWorkingBeatmap(beatmapStream, beatmapInfo); ScoreInfo score = new ScoreInfo() { MaxCombo = (int)result.Combo, Mods = ruleset.GetAllMods().Where(mod => result.Mods.GetFromBitflag().Select(m => m.ToShortString()).Contains(mod.Acronym)).ToArray(), Accuracy = (float)result.Accuracy.Accuracy, Statistics = result.Accuracy.Statistics, }; if (ifSs) { score.Statistics = new Dictionary <HitResult, int>() { { HitResult.Miss, 0 }, { HitResult.Ok, 0 }, { HitResult.Meh, 0 }, { HitResult.Good, 0 }, { HitResult.Perfect, 0 }, { HitResult.Great, result.Accuracy.Statistics.Sum(k => k.Value) } }; } PerformanceCalculator calc = ruleset.CreatePerformanceCalculator(beatmap, score); return((float)calc.Calculate()); }
public DiscordEmbedBuilder CreateListEmbed() { this.user = OsuApi.User(input).Result; DiscordEmbedBuilder embed = CreateBaseEmbed(); for (int i = input.Page * 5 - 5; i < input.Page * 5; i++) { if (i < scoreList.Length) { ScoreData score = scoreList[i]; int modRequestNumber = OsuHelper.GetModRequestNumber(score.EnabledMods); BeatmapData beatmap = OsuApi.Beatmap(score.BeatmapId, modRequestNumber, input.Gamemode).Result[0]; ppData pp = new PerformanceCalculator(score, beatmap, input.Gamemode).Calculate(); string achievedPp; if (score.Rank.Equals("F") || beatmap.Approved == 4) { achievedPp = $"~~{Math.Round(score.PP > 0 && !input.IsDeltaT ? score.PP : pp.AchievedPp)}pp~~"; } else { achievedPp = Math.Round(score.PP > 0 && !input.IsDeltaT ? score.PP : pp.AchievedPp).ToString() + "pp"; } Dictionary <string, string> data = GetModeData(score, beatmap); embed.AddField($"**{beatmap.Artist} - {beatmap.Title} [{beatmap.Version}]**", $"{GetRankEmoji(score)}{OsuHelper.ParseMods(score.EnabledMods)} {data["accuracy"]} {achievedPp}\n" + $"{data["combo"]} ({data["hits"]})"); } else { break; } } return(embed); }
// Use this for initialization void Start() { controller = GetComponent<MovementController>(); lastTarget = target; //self = transform; server.clients.Add(this); grid = server.grid; recentlyPerformance = GetComponent<PerformanceCalculator>(); recentlyPerformance.AddPositions(transform.position); controller.setMovementSpeed(recentlyPerformance.getSpeed()); }
public async Task <DiscordEmbedBuilder> CreateScoreEmbed() { int requestnumber = OsuHelper.GetModRequestNumber(score.EnabledMods); Task <UserData> userRequest = OsuApi.User(input); Task <BeatmapData[]> beatmapRequest = OsuApi.Beatmap(score.BeatmapId ?? input.BeatmapId, requestnumber, input.Gamemode); Task <ScoreData[]> leaderboardRequest = OsuApi.Leaderboard(score.BeatmapId, input.Gamemode); Task.WhenAll( userRequest, beatmapRequest, leaderboardRequest ).Wait(); user = userRequest.Result; beatmap = beatmapRequest.Result[0]; leaderboard = leaderboardRequest.Result; DiscordEmbedBuilder embed = CreateBaseEmbed(); Dictionary <string, string> data = GetModeData(score, beatmap); string emoji = GetRankEmoji(score); string mods = OsuHelper.ParseMods(score.EnabledMods); ppData pp = new PerformanceCalculator(score, beatmap, input.Gamemode).Calculate(); string achievedPp; if (score.Rank.Equals("F") || beatmap.Approved == 4) { achievedPp = $"~~{Math.Round(score.PP > 0 && !input.IsDeltaT ? score.PP : pp.AchievedPp)}pp~~"; } else { achievedPp = Math.Round(score.PP > 0 && !input.IsDeltaT ? score.PP : pp.AchievedPp).ToString() + "pp"; } var totalTimeSpan = TimeSpan.FromSeconds(beatmap.TotalLength); var hitTimeSpan = TimeSpan.FromSeconds(beatmap.HitLength); string totalLength = string.Format("{0:D2}:{1:D2}", totalTimeSpan.Minutes, totalTimeSpan.Seconds); string hitLength = string.Format("{0:D2}:{1:D2}", hitTimeSpan.Minutes, hitTimeSpan.Seconds); int retryCount = GetRetryCount(); if (retryCount > 0) { embed.Author.Name += $" | Try #{retryCount}"; } embed.WithDescription($"[{beatmap.Artist} - {beatmap.Title} [{beatmap.Version}]](https://osu.ppy.sh/b/{beatmap.BeatmapId})\n" + $"{mods} **{achievedPp}**"); int leaderboardPosition = GetLeaderboardPosition(); if (leaderboardPosition > 0) { embed.Description += $" BM#{leaderboardPosition}"; } embed.AddField("**Score**", $"{emoji} {score.Score.ToString("#,##0")}", true); embed.AddField("**Combo**", data["combo"], true); embed.AddField("**Accuracy**", data["accuracy"], true); embed.AddField("**Hits**", data["hits"], true); if (pp.FullComboPp != 0) { embed.AddField("**PP if FC**", Math.Round(pp.FullComboPp) + "pp", true); } if (pp.ssPp != 0) { embed.AddField("**PP if SS**", Math.Round(pp.ssPp) + "pp", true); } embed.AddField("**Beatmap Values**", $"★{Math.Round(beatmap.DifficultyRating, 2)} **Length**: {totalLength} ({hitLength}) **BPM** {beatmap.bpm}\n" + data["stats"]); embed.WithFooter($"Beatmap by: {beatmap.Creator} | Played on {score.Date}"); Database.SetLastMap(input.DiscordChannelId, beatmap.BeatmapId); return(embed); }
/* public static Presenters Presenters * { * get { return presenters; } * }*/ static Program() { var exePath = Path.GetDirectoryName(Application.ExecutablePath); var path = Path.Combine(exePath, "AppSettings.json"); var json = File.ReadAllText(path); GlobalObjects.Config = JsonConvert.DeserializeObject <JObject>(json); AuditContext auditContext = null; try { auditContext = new AuditContext((string)GlobalObjects.Config["ConnectionStrings"]["Audit"]); } catch {} GlobalObjects.AuditRepository = new AuditRepository(auditContext); GlobalObjects.AuditContext = auditContext; var environment = DbTypes.CasEnvironment = new CasEnvironment(); environment.AuditRepository = GlobalObjects.AuditRepository; environment.ApiProvider = new ApiProvider((string)GlobalObjects.Config["ConnectionStrings"]["ScatTest"]); var nonRoutineJobDataAccess = new NonRoutineJobDataAccess(environment.Loader, environment.Keeper); var itemsRelationsDataAccess = new ItemsRelationsDataAccess(environment); var filesDataAccess = new FilesDataAccess(environment.NewLoader); var workPackageRecordsDataAccess = new WorkPackageRecordsDataAccess(environment); var storeService = new StoreCore(environment); var aircraftService = new AircraftsCore(environment.Loader, environment.NewKeeper, environment.NewLoader); var compontntService = new ComponentCore(environment, environment.Loader, environment.NewLoader, environment.NewKeeper, aircraftService, itemsRelationsDataAccess); var averageUtilizationService = new AverageUtilizationCore(aircraftService, storeService, compontntService); var directiveService = new DirectiveCore(environment.NewKeeper, environment.NewLoader, environment.Keeper, environment.Loader, itemsRelationsDataAccess); var aircraftFlightService = new AircraftFlightCore(environment, environment.Loader, environment.NewLoader, directiveService, environment.Manipulator, compontntService, environment.NewKeeper, aircraftService); var flightTrackService = new FlightTrackCore(environment.NewLoader, environment.Loader, environment); var calculator = new Calculator(environment, compontntService, aircraftFlightService, aircraftService); var mtopCalculator = new MTOPCalculator(calculator, aircraftService, averageUtilizationService); var planOpsCalculator = new PlanOpsCalculator(environment.NewLoader, environment.NewKeeper, aircraftService, flightTrackService); var performanceCalculator = new PerformanceCalculator(calculator, averageUtilizationService, mtopCalculator); var packageService = new PackagesCore(environment, environment.NewKeeper, environment.Loader, aircraftService, compontntService); var purchaseService = new PurchaseCore(environment, environment.NewLoader, environment.Loader, packageService, environment.NewKeeper, performanceCalculator); var calcStockService = new StockCalculator(environment, environment.NewLoader, compontntService); var documentService = new DocumentCore(environment, environment.NewLoader, environment.Loader, aircraftService, environment.NewKeeper, compontntService); var maintenanceService = new MaintenanceCore(environment, environment.NewLoader, environment.NewKeeper, itemsRelationsDataAccess, aircraftService); var maintenanceCheckCalculator = new MaintenanceCheckCalculator(calculator, averageUtilizationService, performanceCalculator); var analystService = new AnalystCore(compontntService, maintenanceService, directiveService, maintenanceCheckCalculator, performanceCalculator); var discrepanciesService = new DiscrepanciesCore(environment.Loader, environment.NewLoader, directiveService, aircraftFlightService); var kitsService = new KitsCore(environment, environment.Loader, environment.NewKeeper, compontntService, nonRoutineJobDataAccess); var smsService = new SMSCore(environment.Manipulator); var personelService = new PersonnelCore(environment); var transferRecordCore = new TransferRecordCore(environment.NewLoader, environment.NewKeeper, compontntService, aircraftService, calculator, storeService, filesDataAccess); var bindedItemsService = new BindedItemsCore(compontntService, directiveService, maintenanceService); var performanceService = new PerformanceCore(environment.NewKeeper, environment.Keeper, calculator, bindedItemsService); var workPackageService = new WorkPackageCore(environment, environment.NewLoader, maintenanceService, environment.NewKeeper, calculator, compontntService, aircraftService, nonRoutineJobDataAccess, directiveService, filesDataAccess, performanceCalculator, performanceService, bindedItemsService, workPackageRecordsDataAccess, mtopCalculator, averageUtilizationService); var nonRoutineJobService = new NonRoutineJobCore(environment, workPackageService, nonRoutineJobDataAccess, environment.NewLoader); var auditService = new AuditCore(environment, environment.Loader, environment.NewLoader, environment.NewKeeper, calculator, performanceCalculator, performanceService); DbTypes.AircraftsCore = aircraftService; GlobalObjects.CasEnvironment = environment; GlobalObjects.PackageCore = packageService; GlobalObjects.PurchaseCore = purchaseService; GlobalObjects.ComponentCore = compontntService; GlobalObjects.AnalystCore = analystService; GlobalObjects.StockCalculator = calcStockService; GlobalObjects.DocumentCore = documentService; GlobalObjects.AuditCore = auditService; GlobalObjects.MaintenanceCore = maintenanceService; GlobalObjects.WorkPackageCore = workPackageService; GlobalObjects.NonRoutineJobCore = nonRoutineJobService; GlobalObjects.DirectiveCore = directiveService; GlobalObjects.AircraftFlightsCore = aircraftFlightService; GlobalObjects.DiscrepanciesCore = discrepanciesService; GlobalObjects.KitsCore = kitsService; GlobalObjects.SmsCore = smsService; GlobalObjects.PersonnelCore = personelService; GlobalObjects.TransferRecordCore = transferRecordCore; GlobalObjects.AircraftsCore = aircraftService; GlobalObjects.ItemsRelationsDataAccess = itemsRelationsDataAccess; GlobalObjects.StoreCore = storeService; GlobalObjects.BindedItemsCore = bindedItemsService; GlobalObjects.AverageUtilizationCore = averageUtilizationService; GlobalObjects.MaintenanceCheckCalculator = maintenanceCheckCalculator; GlobalObjects.MTOPCalculator = mtopCalculator; GlobalObjects.PerformanceCalculator = performanceCalculator; GlobalObjects.PlanOpsCalculator = planOpsCalculator; GlobalObjects.PerformanceCore = performanceService; GlobalObjects.FlightTrackCore = flightTrackService; environment.SetAircraftCore(aircraftService); environment.Calculator = calculator; environment.Manipulator.PurchaseService = GlobalObjects.PurchaseCore; environment.Manipulator.MaintenanceCore = GlobalObjects.MaintenanceCore; environment.Manipulator.WorkPackageCore = GlobalObjects.WorkPackageCore; environment.Manipulator.AircraftFlightCore = GlobalObjects.AircraftFlightsCore; environment.Manipulator.ComponentCore = GlobalObjects.ComponentCore; environment.Manipulator.AircraftsCore = GlobalObjects.AircraftsCore; environment.Manipulator.BindedItemCore = GlobalObjects.BindedItemsCore; InitLoadingVariants(); InitializePresenters(); }