コード例 #1
0
 public static void UpdateIfOpened(IPackageVersion packageVersion)
 {
     if (IsOpen() && packageVersion != null && ValidationSuite.JsonReportExists(packageVersion.VersionId()))
     {
         Open(packageVersion);
     }
 }
コード例 #2
0
        internal void RefreshValidationStatus()
        {
            if (PackageVersion == null)
            {
                return;
            }

            if (!ValidationSuite.JsonReportExists(PackageVersion.versionId()))
            {
                ValidateButton.Status       = DropdownStatus.None;
                ValidateButton.DropdownMenu = null;
            }
            else
            {
                var report = ValidationSuite.GetReport(PackageVersion.versionId());
                if (report.TestResult != TestState.Succeeded)
                {
                    ValidateButton.Status = DropdownStatus.Error;
                }
                else
                {
                    ValidateButton.Status = DropdownStatus.Success;
                }

                ValidateButton.DropdownMenu = CreateStandardDropdown(state => ShowValidationReport());
            }
        }
コード例 #3
0
        public void GenerateJobs(ValidationSuite vs, List <Instance> instances, string notes)
        {
            ValidationJob job;

            int folds = 10, reps = 2;

            job            = new ValidationJob();
            job.Validator  = new KFoldValidation(instances, folds, reps);
            job.Classifier = new NaiveBayesClassifier();
            job.Notes      = notes;

            vs.Jobs.Add(job);

            /*
             * for (int k = 1; k <= 4; k++)
             * {
             *  foreach (Metric metric in Enum.GetValues(typeof(Metric)))
             *  {
             *      if (metric == Metric.HammingDistance || metric == Metric.ChebyshevDistance
             || metric == Metric.JaccardSimilarity || metric == Metric.DistanceSquared) continue;
             ||
             ||     WeightMode mode = WeightMode.InverseDistance;
             ||     job = new ValidationJob();
             ||     job.Validator = new KFoldValidation(instances, folds, reps);
             ||     job.Classifier = new KNearestClassifier(k, metric, mode);
             ||     job.Notes = notes;
             ||
             ||     vs.Jobs.Add(job);
             || }
             ||}*/
        }
コード例 #4
0
        void SetPackageVersion(IPackageVersion packageVersion, ValidationSuiteReportData reportData = null)
        {
            m_PackageVersion = packageVersion;
            m_ReportData     = reportData ?? ValidationSuite.GetReport(m_PackageVersion.VersionId());

            m_Report?.Init(m_PackageVersion, m_ReportData);
        }
コード例 #5
0
        void SetPackageVersion(IPackageVersion packageVersion, ValidationSuiteReportData reportData = null)
        {
            PackageVersion = packageVersion;
            ReportData     = reportData ?? ValidationSuite.GetReport(PackageVersion.versionId());

            Report?.Init(PackageVersion, ReportData);
        }
コード例 #6
0
    public static void ValidateInternal(string packagePath)
    {
        var packageManifest = Path.Combine(packagePath, "package.json");

        if (!File.Exists(packageManifest))
        {
            throw new Exception($"File package.json not found in {packagePath}");
        }

        object dict;

        if (!Json.TryDeserializeObject(File.ReadAllText(packageManifest), out dict))
        {
            throw new Exception($"Invalid package.json file in {packageManifest}");
        }

        Json.TryGetValue((IDictionary <string, object>)dict, "name", out string name);
        Json.TryGetValue((IDictionary <string, object>)dict, "version", out string version);

        var result = ValidationSuite.ValidatePackage($"{name}@{version}", ValidationType.Publishing);

        if (!result)
        {
            FilterWhitelistedFailures(ValidationSuite.GetValidationSuiteReport(name, version));
        }
    }
コード例 #7
0
        public void Validate()
        {
            const string package = "[email protected]";
            var          result  = ValidationSuite.ValidatePackage(package, ValidationType.LocalDevelopment);

            Debug.Log(ValidationSuite.GetValidationSuiteReport(package));
            Assert.True(result);
        }
コード例 #8
0
        internal void RefreshValidationStatus(IPackageVersion packageVersion)
        {
            if (packageVersion == null)
            {
                return;
            }

            m_ViewValidateReport.visible = ValidationSuite.JsonReportExists(packageVersion.VersionId());
        }
コード例 #9
0
        public void OnPublish(IPackageVersion packageVersion)
        {
            if (Application.internetReachability == NetworkReachability.NotReachable)
            {
                Debug.LogWarning("Validation suite requires network access and cannot be used offline.");
                return;
            }

            ValidationSuite.ValidatePackage(packageVersion.versionId(), ValidationType.Publishing);
            ValidationSuiteReportWindow.Open(packageVersion);
        }
コード例 #10
0
        void OnValidate()
        {
            if (Application.internetReachability == NetworkReachability.NotReachable)
            {
                Debug.LogWarning("Validation suite requires network access and cannot be used offline.");
                return;
            }

            ValidationSuite.ValidatePackage(PackageVersion.versionId(), ValidationType.LocalDevelopment);
            PrepareTools.ShowValidationReport();
        }
コード例 #11
0
        private void ValidateClicked(PackageSelectionArgs args)
        {
            if (Application.internetReachability == NetworkReachability.NotReachable)
            {
                Debug.LogWarning("Validation suite requires network access and cannot be used offline.");
                return;
            }

            ValidationSuite.ValidatePackage(args.packageVersion.VersionId(), ValidationType.LocalDevelopment);
            ShowValidationReport(args);
        }
コード例 #12
0
        public static void Open(IPackageVersion packageVersion)
        {
            if (IsOpenedWith(packageVersion))
            {
                return;
            }
            if (!ValidationSuite.JsonReportExists(packageVersion.VersionId()))
            {
                return;
            }

            var dialog = GetWindow <ValidationSuiteReportWindow>(false, "Validation", true);

            dialog.SetPackageVersion(packageVersion);
            dialog.minSize = new Vector2(750, 350);
            dialog.Show();
        }
コード例 #13
0
        public void RunTests(string method, string inPath, string outPath)
        {
            List <Instance> training;
            ValidationSuite vs   = new ValidationSuite();
            string          path = inPath;
            string          fr   = method + ",";

            vs.Notes  = "Instances loaded from: " + path;
            vs.Notes += "\nFeature Reduction: " + fr;

            int[] ns = new int[] { 16, 32, 64, 128, 256, 512, 768, 1024 };
            //int[] ns = new int[] { 16, 32, 64, 128, 256, 512 };
            foreach (int n in ns)
            {
                training = LoadInstancesFromBitmaps(path, n, method);
                GenerateJobs(vs, training, fr + " " + n);
            }

            vs.PerformAllJobs();
            vs.SaveToFile(outPath);
            Print(vs.Print());
        }
        private void Validate()
        {
            if (root == null)
            {
                return;
            }

            if (Utilities.NetworkNotReachable)
            {
                EditorUtility.DisplayDialog("", "Validation suite requires network access and cannot be used offline.", "Ok");
                return;
            }

            var validationType = CurrentPackageinfo.source == PackageSource.Registry ? ValidationType.Promotion : ValidationType.LocalDevelopmentInternal;
            var results        = ValidationSuite.ValidatePackage(PackageId, validationType);
            var report         = ValidationSuiteReport.GetReport(PackageId);

            UIUtils.SetElementDisplay(ViewResultsButton, ValidationSuiteReport.ReportExists(PackageId));
            UIUtils.SetElementDisplay(ViewDiffButton, ValidationSuiteReport.DiffsReportExists(PackageId));

            if (!results)
            {
                ValidationResults.text     = "Failed";
                root.style.backgroundColor = Color.red;
            }
            else if (report != null && report.Tests.Any(t => t.TestOutput.Any(o => o.Type == TestOutputType.Warning)))
            {
                ValidationResults.text     = "Warnings";
                root.style.backgroundColor = Color.yellow;
            }
            else
            {
                ValidationResults.text     = "Success";
                root.style.backgroundColor = Color.green;
            }
        }
コード例 #15
0
 public void Validate()
 {
     Assert.True(ValidationSuite.ValidatePackage("[email protected]", ValidationType.LocalDevelopment));
 }