Esempio n. 1
0
        public void Wrapper()
        {
            var rulesSet = Path.Combine(TestDir, "analyzer", "rules.txt");
            var storage  = Path.Combine(TestDir, "analyzer", "storage.data");
            var ids      = AcKunosContent.GetKunosCarIds(AcRoot).ToArray();

            var wrapper = RulesWrapper.FromFile(AcRoot, rulesSet, storage, ids);

            wrapper.EnsureActual();

            var d = ids.Where(x => Directory.Exists(FileUtils.GetCarDirectory(AcRoot, x)))
                    .Select(x => new { Id = x, Data = DataWrapper.FromCarDirectory(AcRoot, x) })
                    .ToList();

            var w = Stopwatch.StartNew();
            var j = 0;

            foreach (var car in d)
            {
                foreach (var s in wrapper.FindSimular(car.Data, "aero", false, 0.85))
                {
                    AcToolsLogging.Write($"{car.Id} is similar to {s.CarId} by {s.Value * 100:F1}%");
                    j++;
                }
            }

            AcToolsLogging.Write($"Check time: {w.Elapsed.TotalMilliseconds / j:F2} ms");
        }
Esempio n. 2
0
        public static RulesWrapper GetRules([CanBeNull] string[] additionalDonorIds)
        {
            var root = AcRootDirectory.Instance.RequireValue;

            return(new RulesWrapper(root, BinaryResources.Rules,
                                    FilesStorage.Instance.GetTemporaryFilename("Cars.data"),
                                    additionalDonorIds == null ?
                                    AcKunosContent.GetKunosCarIds(root).ToArray() :
                                    AcKunosContent.GetKunosCarIds(root).Union(additionalDonorIds).ToArray()));
        }