List <PointValue> point_values; //Точечные оценки #region CONSTRUCTORS /// <summary> /// Создает новый объект NormalDistribution на основе объекта /// Distribution, содержащего статистические данные, для которых /// проверяется гипотеза /// </summary> /// <param name="distr"></param> public NormalDistribution(Distribution.Distribution distr) : base(distr) { //Если наш исходный ряд был обычным рядом (либо ввод ряда, либо ввод выборки), //то берем ряд частот. Иначе берем группированный ряд частот как его аналог для //интервального ряда if (distr.StatFreq != null) { raw_statistics = distr.StatFreq; } else { raw_statistics = distr.GroupFreq; } //Расчитываем точеченые оценки //Мат ожидание = выборочное средние //Дисперсия = выборочная дисперсия NumericSolver solver = new NumericSolver(raw_statistics); standart_deviation = solver.StandartDeviation(); expected_value = solver.Mean(); //Создаем список с точечными оценками point_values = new List <PointValue> { new PointValue("Математическое ожидание", Resources.normal_expected_value, expected_value), new PointValue("Среднеквадратическое откланение", Resources.normal_standart_deviation, standart_deviation), }; }
private DistributionPackage DownloadPackageAsync(Distribution.Distribution distribution) { var distroPath = GetFileName(distribution); var distroDownloadUrl = GenerateUrl(distribution); var client = new HttpClient { BaseAddress = config.DownloadUri }; client.DefaultRequestHeaders.Add("User-Agent", config.UserAgent); var response = client.GetAsync(distroDownloadUrl, HttpCompletionOption.ResponseContentRead) .ConfigureAwait(false).GetAwaiter().GetResult(); if (!response.IsSuccessStatusCode) { throw new ArgumentException("The specified distribution cannot be downloaded"); } using (var stream = response.Content.ReadAsStreamAsync().ConfigureAwait(false).GetAwaiter().GetResult()) { stream.CopyToAsync(File.Create(distroPath)) .ConfigureAwait(false) .GetAwaiter() .GetResult(); } return(new DistributionPackage(distroPath)); }
public DefaultPgConfig(Distribution.Distribution distribution, string dataDir) { Distribution = distribution; if (!string.IsNullOrWhiteSpace(dataDir)) { DataDir = dataDir; } }
private string GetFileName(Distribution.Distribution distribution) { var fileExt = distribution.Platform == OSPlatform.Linux ? "tar.gz" : "zip"; return(Path.Combine( config.PackagesCachePath.FullName, $"{distribution.Version.SemVersion}-{distribution.BitSize.ToString()}.{fileExt}".ToLowerInvariant())); }
public DistributionPackage Setup(Distribution.Distribution distribution, DirectoryInfo distroPath) { var package = downloader.GetPackage(distribution); package.CopyTo(distroPath); distroPath.Refresh(); return(package); }
public void Should_check_for_distribution() { var localUserStore = new LocalUserStore(new DefaultStoreConfig()); var distribution = new Distribution.Distribution(new Version("9.4.15"), OSPlatform.Windows, Architecture.X86); var result = localUserStore.GetDistributionPackage(distribution); result.Should().NotBeNull(); }
public void Should_download_postgres_package() { var config = new DefaultStoreConfig(); var cacheDir = new DirectoryInfo(Path.Combine(config.ArtifactStorePath.FullName, config.PackagesCache)); var downloader = new PostgresPackageDownloader(new PostgresDownloaderConfig(cacheDir)); var distro = new Distribution.Distribution(new Version("9.3.20"), OSPlatform.Windows, Architecture.X64); var package = downloader.GetPackage(distro); Assert.NotNull(package); }
public DistributionPackage GetPackage(Distribution.Distribution distribution) { var distroPath = GetFileName(distribution); if (File.Exists(distroPath)) { return(new DistributionPackage(distroPath)); } return(DownloadPackageAsync(distribution)); }
private DirectoryInfo GenerateDistroPath(Distribution.Distribution distribution) { var newDistroDirectory = $"{Guid.NewGuid()}-{distribution.Version}-{distribution.BitSize.ToString()}" .ToLowerInvariant(); var path = new DirectoryInfo(Path.Combine(storePath.FullName, config.DistributionsRoot, newDistroDirectory)); if (!path.Exists) { path.Create(); } return(path); }
public PostgresConfig( Distribution.Distribution distribution, int port, string dbName, string dataDir, string user, string password, IReadOnlyCollection <string> additionalParams) { Distribution = distribution; Port = port; DatabaseName = dbName; DataDir = dataDir; Username = user; Password = password; AdditionalParams = additionalParams; }
Dictionary <double, double> raw_statistics; //Исходный ряд (либо группированный, либо простой) //Используется для расчет точечных оценок и построения //теоретической функции #region CONSTRUCTORS public BinomialDistribution(Distribution.Distribution distr, int number_of_experiments) : base(distr) { raw_statistics = distr.StatFreq; n = number_of_experiments; //Вычисляем вероятность благоприятного исхода double mean = new NumericSolver(raw_statistics).Mean(); p = mean / n; point_values = new List <PointValue> { new PointValue("Вероятность появления события", Resources.binomial_p, p) }; }
public DistributionPackage GetDistributionPackage(Distribution.Distribution distribution) { var artifactStorePath = storePath; var packageResolver = config.PackageResolver; if (!artifactStorePath.Exists) { artifactStorePath.Create(); artifactStorePath.CreateSubdirectory(config.PackagesCache); artifactStorePath.CreateSubdirectory(config.DistributionsRoot); } var distroPath = GenerateDistroPath(distribution); return(packageResolver.Setup(distribution, distroPath)); }
private static Uri GenerateUrl(Distribution.Distribution distribution) { var fileExt = distribution.Platform == OSPlatform.Linux ? "tar.gz" : "zip"; var urlBuilder = new StringBuilder("postgresql-", 1024); urlBuilder.Append(distribution.Version.SemVersion); urlBuilder.Append(distribution.Version.SemVersion < new SemVersion(9, 6, 6) ? "-2-" : "-3-"); urlBuilder.Append(distribution.Platform.ToString().ToLowerInvariant()); if (distribution.BitSize == Architecture.X64) { urlBuilder.Append("-x64"); } urlBuilder.Append("-binaries."); urlBuilder.Append(fileExt); return(new Uri(urlBuilder.ToString(), UriKind.Relative)); }
public AbstractDistribution(Distribution.Distribution distr) { this.distr = distr; }