Example #1
0
        public void ExceptionIfRulesVersionIsIncompatible()
        {
            TypesRegistry typesRegistry = new TypesRegistry();

            string rulesText = @"== Rendering Rules ==

=== Options ===
{| class='wikitable' border='1' cellspacing='0' cellpadding='2' 
|- style='background-color:#F8F4C2'
! Option
! Value
! Comment 
|-
| RulesVersion || 1.7 || Minimal version of [[GroundTruth]] needed to use these rules
|-
| LandBackgroundColor || #218CFF || Color of the map background. If not set, the default unit color will be used
|-
|}
";

            using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(rulesText)))
            {
                WikiRulesParser parser = new WikiRulesParser(
                    stream,
                    typesRegistry,
                    null,
                    SerializersRegistry);
                parser.Parse();
                RenderingRuleSet rules = parser.Rules;
            }
        }
 public void RegisterTypes(TypesRegistry typesRegistry)
 {
     foreach (ContoursElevationRule rule in rules.Values)
     {
         rule.RegisterTypes(typesRegistry);
     }
 }
 public void RegisterTypes(TypesRegistry typesRegistry)
 {
     foreach (ContourRenderingTemplate template in templates)
     {
         template.RegisterType(ruleName, typesRegistry, false);
     }
 }
Example #4
0
        public void MakeSureOptionsAreParsed()
        {
            RenderingRuleSet rules;
            TypesRegistry    typesRegistry = ParseRules(@"..\..\..\GroundTruth\Rules\HikingMapRules.txt", out rules);

            Assert.AreEqual(new GisColor(unchecked ((int)0xffFFEFBF)), rules.Options.LandBackgroundColor);
            Assert.AreEqual("1.6", rules.Options.RulesVersion);
        }
Example #5
0
        public static bool IsOfType(this ClrInstance instance, Type type, TypesRegistry registry)
        {
            if (instance.Type == null)
            {
                return(false);
            }

            return(registry.IsInstanceOfType(instance.Type, type));
        }
Example #6
0
        public static bool IsTaskLike(this ClrInstance instance, TypesRegistry registry)
        {
            if (instance.IsOfType(typeof(Task), registry))
            {
                return(true);
            }

            // Add support for ValueTask and other task-like types.
            return(false);
        }
Example #7
0
        public void Navigate(Type viewModelType, INavigatorViewModel containerViewModel)
        {
            Type pageType = new TypesRegistry().GetViewType(viewModelType);

            _containerPage = containerViewModel.AssociatedPage;

            _containerPage.Frame.Navigate(pageType);

            NavigatedToPage?.Invoke(null, null);
        }
Example #8
0
        /// <summary>
        /// Initializes a new instance of the <see cref="WikiRulesParser"/> class.
        /// </summary>
        /// <param name="inputStream">The input stream from which the rendering rules will be parsed..</param>
        public WikiRulesParser(
            Stream inputStream,
            TypesRegistry typesRegistry,
            CharactersConversionDictionary charactersConversionDictionary,
            ISerializersRegistry serializersRegistry)
        {
            this.typesRegistry = typesRegistry;
            this.charactersConversionDictionary = charactersConversionDictionary;
            this.serializersRegistry            = serializersRegistry;

            WikiParser.SetWikiContentSource(inputStream);
        }
Example #9
0
        public void ParseRules()
        {
            RenderingRuleSet rules;
            TypesRegistry    typesRegistry = ParseRules(@"..\..\..\GroundTruth\Rules\HikingMapRules.txt", out rules);

            Assert.AreEqual(51, rules.RulesCount);

            RenderingRule rule;
            int           i = 0;

            rule = rules[i++];
            Assert.AreEqual("Land", rule.RuleName);
            Assert.AreEqual(RenderingRuleTargets.Areas, rule.Targets);

            rule = rules[i++];
            Assert.AreEqual("Marsh", rule.RuleName);
            Assert.AreEqual(RenderingRuleTargets.Areas, rule.Targets);

            rule = rules[i++];
            Assert.AreEqual("Forest", rule.RuleName);
            Assert.AreEqual(RenderingRuleTargets.Areas, rule.Targets);

            rule = rules[i++];
            Assert.AreEqual("Park", rule.RuleName);
            Assert.AreEqual(RenderingRuleTargets.Areas, rule.Targets);

            rule = rules[i++];
            Assert.AreEqual("Farm", rule.RuleName);
            Assert.AreEqual(RenderingRuleTargets.Areas, rule.Targets);

            rule = rules[i++];
            Assert.AreEqual("Farmyard", rule.RuleName);
            Assert.AreEqual(RenderingRuleTargets.Areas, rule.Targets);

            rule = rules[i++];
            Assert.AreEqual("Fell", rule.RuleName);
            Assert.AreEqual(RenderingRuleTargets.Areas, rule.Targets);

            rule = rules[i++];
            Assert.AreEqual("Residential", rule.RuleName);
            Assert.AreEqual(RenderingRuleTargets.Areas, rule.Targets);

            rule = rules[i++];
            Assert.AreEqual("Water", rule.RuleName);
            Assert.AreEqual(RenderingRuleTargets.Areas, rule.Targets);

            // check point patterns
            Assert.AreEqual(11, typesRegistry.Patterns.Count);
            PatternDefinition patternDefinition = typesRegistry.Patterns["IconPeak"];

            Assert.IsNotNull(patternDefinition);
        }
Example #10
0
        public void CheckNewTypesIdGeneration()
        {
            TypesRegistry reg = new TypesRegistry();

            for (int i = 0; i < 100; i++)
            {
                AreaTypeRegistration type = reg.RegisterNewAreaType(i.ToString(), false);

                Assert.AreNotEqual <int> (0x010f20, type.TypeId);
                Assert.AreNotEqual <int> (0x010f21, type.TypeId);
                Assert.AreNotEqual <int> (0x010f30, type.TypeId);
            }
        }
Example #11
0
        public CausalityContext(HeapContext heapContext)
        {
            Registry = TypesRegistry.Create(heapContext);
            Heap     = heapContext;

            _threadsById = heapContext.DefaultHeap.Runtime.Threads.ToDictionary(t => t.ManagedThreadId, t => t);

            foreach (var(instance, kind) in Registry.EnumerateRegistry())
            {
                GetOrCreate(instance, kind);
            }

            Console.WriteLine("Successfully loaded clr instances.");
        }
Example #12
0
        private TypesRegistry ParseRules(string rulesFile, out RenderingRuleSet rules)
        {
            TypesRegistry typesRegistry = new TypesRegistry();

            using (Stream stream = File.OpenRead(rulesFile))
            {
                WikiRulesParser parser = new WikiRulesParser(
                    stream,
                    typesRegistry,
                    null,
                    SerializersRegistry);
                parser.Parse();
                rules = parser.Rules;
            }

            return(typesRegistry);
        }
Example #13
0
        public void ParseContourRules()
        {
            TypesRegistry typesRegistry = new TypesRegistry();

            ContoursElevationRuleMap rules;

            using (Stream stream = File.OpenRead(@"..\..\..\GroundTruth\Rules\ContoursRulesMetric.txt"))
            {
                ContoursRulesParser parser = new ContoursRulesParser();
                rules = parser.Parse(stream);
            }

            Assert.IsNotNull(rules.FindMatchingRule(1100));
            Assert.IsNotNull(rules.FindMatchingRule(20));
            Assert.IsNotNull(rules.FindMatchingRule(50));
            Assert.IsNull(rules.FindMatchingRule(5));
        }
Example #14
0
        public void ParseGarminStandardTypes()
        {
            RenderingRuleSet rules;
            TypesRegistry    typesRegistry = ParseRules(@"..\..\..\GroundTruth\Rules\StandardGarminTypes.txt", out rules);

            Assert.IsNotNull(typesRegistry.GarminPointTypesDictionary);
            Assert.AreEqual(79, typesRegistry.GarminPointTypesDictionary.TypesCount);
            Assert.AreEqual(1, typesRegistry.GarminPointTypesDictionary.GetType("City (Capital)"));
            Assert.AreEqual(20480, typesRegistry.GarminPointTypesDictionary.GetType("Drinking Water"));

            Assert.IsNotNull(typesRegistry.GarminLineTypesDictionary);
            Assert.AreEqual(41, typesRegistry.GarminLineTypesDictionary.TypesCount);
            Assert.AreEqual(5, typesRegistry.GarminLineTypesDictionary.GetType("Arterial Road-thick"));

            Assert.IsNotNull(typesRegistry.GarminAreaTypesDictionary);
            Assert.AreEqual(28, typesRegistry.GarminAreaTypesDictionary.TypesCount);
            Assert.AreEqual(1, typesRegistry.GarminAreaTypesDictionary.GetType("City"));
        }
Example #15
0
 public TypeNameHelper(TypesRegistry registry) => _registry = registry;
Example #16
0
 public static string?TypeToString(this ClrType?type, TypesRegistry registry) => type == null ? null : new TypeNameHelper(registry).TypeToString(type);
Example #17
0
 public abstract void RegisterType(
     string ruleName,
     TypesRegistry typesRegistry,
     bool insertAsFirst);
Example #18
0
 public void ParseRules2()
 {
     RenderingRuleSet rules;
     TypesRegistry    typesRegistry = ParseRules(@"..\..\..\GroundTruth\Rules\DefaultRules.txt", out rules);
 }