Example #1
0
        public void String_009(string v)
        {
            var h = ShardKey.ForString(v);

            "Hash: {0:x2}".SeeArgs(h);
            Aver.AreEqual(new ShardKey(v).Hash, h);
        }
Example #2
0
File: Shard.cs Project: azist/azos
        protected internal Shard(ShardSet set, IConfigSectionNode conf)
        {
            m_Set = set.NonNull(nameof(set));
            ConfigAttribute.Apply(this, conf.NonEmpty(nameof(conf)));
            m_Name     = conf.ValOf(Configuration.CONFIG_NAME_ATTR).NonBlank("$name");
            m_NameHash = ShardKey.ForString(m_Name);

            m_Weight = conf.Of(CONFIG_WEIGHT_ATTR).ValueAsDouble(1.0d);

            m_ConnectString = conf.Of(CONFIG_CONNECT_ATTR, CONFIG_CONNECT_STRING_ATTR).Value.NonBlank($"${CONFIG_CONNECT_ATTR}");
            m_DatabaseName  = conf.Of(CONFIG_DB_ATTR).Value.NonBlank($"${CONFIG_DB_ATTR}");
        }
Example #3
0
        internal TypeSchema(IArea area, IConfigSectionNode cfg)
        {
            m_Area = area.NonNull(nameof(area));

            if (!cfg.NonEmpty(nameof(cfg)).IsSameName(CONFIG_SCHEMA_SECTION))
            {
                cfg = cfg[CONFIG_SCHEMA_SECTION];
            }

            cfg.NonEmpty(nameof(CONFIG_SCHEMA_SECTION));

            m_Assemblies  = new Dictionary <string, BuildInformation>(StringComparer.OrdinalIgnoreCase);
            m_ObjectTypes = new Dictionary <string, Type>(StringComparer.OrdinalIgnoreCase);
            m_QueryTypes  = new Dictionary <string, List <Type> >(StringComparer.OrdinalIgnoreCase);

            try
            {
                foreach (var node in cfg.ChildrenNamed(CONFIG_ASSEMBLY_SECTION))
                {
                    var fn    = node.ValOf(CONFIG_FILE_ATTR).NonBlank("{0}/${1}".Args(node.RootPath, CONFIG_FILE_ATTR));
                    var asm   = Assembly.LoadFrom(fn);
                    var nsPat = node.ValOf(CONFIG_NS_PATTERN_ATTR).Default("*");
                    load(asm, nsPat);
                }

                //Computer version digest on SORTED assembly Build infos
                //the operation is deferred after all assemblies finished loading
                m_Version = 0;
                foreach (var entry in m_Assemblies.OrderBy(e => e.Key))   //(deterministic order) based on Assembly FQN
                {
                    m_Version ^= ShardKey.ForString(entry.Value.Content); //compute version digest hash based on the BuildInfo
                }
            }
            catch (Exception error)
            {
                throw new ConfigException("Bad config of {0}: {1}".Args(nameof(TypeSchema), error.ToMessageWithType()), error);
            }
        }
Example #4
0
 public void String_008()
 {
     Aver.AreEqual(ShardKey.ForString("водах"), ShardKey.ForString("водах"));
     Aver.AreEqual(ShardKey.ForString("Американские суда находятся в международных водах"), ShardKey.ForString("Американские суда находятся в международных водах"));
 }
Example #5
0
 [Run] public void FNV1A64_String7() => Aver.AreEqual(0x181ff1a88c7c1e81UL, ShardKey.ForString("very very long string which is much longer than other strings IN this set"));
Example #6
0
 public void String_006()
 {
     Aver.AreEqual(ShardKey.ForString("abcDefghuiop"), ShardKey.ForString("abcDefghuiop"));
 }
Example #7
0
 public void String_007()
 {
     Aver.AreEqual(ShardKey.ForString("久"), ShardKey.ForString("久"));
     Aver.AreEqual(ShardKey.ForString("久有归天愿"), ShardKey.ForString("久有归天愿"));
     Aver.AreEqual(ShardKey.ForString("久有归天愿八十三年过去到处群魔乱舞"), ShardKey.ForString("久有归天愿八十三年过去到处群魔乱舞"));
 }
Example #8
0
 public void String_004()
 {
     Aver.AreEqual(ShardKey.ForString("abc"), ShardKey.ForString("abc"));
 }
Example #9
0
 public void String_005()
 {
     Aver.AreEqual(ShardKey.ForString("abcD"), ShardKey.ForString("abcD"));
     Aver.AreNotEqual(ShardKey.ForString("abcD"), ShardKey.ForString("abcd"));
 }
Example #10
0
 public void String_001()
 {
     Aver.AreEqual(0ul, ShardKey.ForString(null));
 }
Example #11
0
 public void String_002()
 {
     Aver.AreEqual(0ul, ShardKey.ForString(""));
 }
Example #12
0
 [Run] public void FNV1A64_String6() => Aver.AreEqual(0xb33b26031858e24bUL, ShardKey.ForString("capital"));
Example #13
0
 [Run] public void FNV1A64_String0b() => Aver.AreEqual(0ul, ShardKey.ForString(""));
Example #14
0
 [Run] public void FNV1A64_String5() => Aver.AreEqual(0xd8bff0beeb476aabUL, ShardKey.ForString("Capital"));
Example #15
0
 [Run] public void FNV1A64_String4() => Aver.AreEqual(0xc2d3aa17cdf6a148UL, ShardKey.ForString(" ab"));
Example #16
0
 [Run] public void FNV1A64_String3() => Aver.AreEqual(0xe71fe3190541c5beUL, ShardKey.ForString("ab "));
Example #17
0
 [Run] public void FNV1A64_String2() => Aver.AreEqual(0x089c4407b545986aUL, ShardKey.ForString("ab"));
Example #18
0
 [Run] public void FNV1A64_String1() => Aver.AreEqual(0xaf63dc4c8601ec8cUL, ShardKey.ForString("a"));
Example #19
0
 [Run] public void FNV1A64_String8() => Aver.AreEqual(0x37458A3018A18365UL, ShardKey.ForString("久有归天愿"));
Example #20
0
 public ulong GetDistributedStableHash() => (System.GetDistributedStableHash() << 32) ^
 Type.GetDistributedStableHash() ^
 ShardKey.ForString(Address);