예제 #1
0
        public void TestNuclide_GetLongTable()
        {
            int ix = 0;

            foreach (string actualASCII in Nuclide.GetLongTable())
            {
                Assert.AreEqual(expectedASCII[ix], actualASCII);
                ++ix;
            }
        }
예제 #2
0
 public void TestNuclide_CheckMethods()
 {
     Assert.AreEqual(Nuclide.Table.Count - 1, Nuclide.GetElements().Count());
     Assert.IsTrue(Nuclide.GetLongTable().Count() >= 7);
     Assert.AreEqual("Kalium", Nuclide.Table[19].GetName("de"));
     Assert.AreEqual("Yodo", Nuclide.Table[53].GetName(new CultureInfo("es")));
     Assert.AreEqual("Sulfur", Nuclide.Table[16].GetName(new CultureInfo("en")));
     Assert.AreEqual("Sulphur", Nuclide.Table[16].GetName(new CultureInfo("en-GB")));
     Assert.AreEqual("Caesium", Nuclide.Table[55].GetName(new CultureInfo("en")));
     Assert.AreEqual("Cesium", Nuclide.Table[55].GetName(new CultureInfo("en-US")));
 }
예제 #3
0
        static void Main(string[] args)
        {
            var culture = new CultureInfo(args.Length == 0 ? "en" : args[0]);

            Console.WriteLine("; z,symbol,name,period,group,category,discoveryYear,discoveryIndex,stableCount,stabilityIndex,block,occurrenceCode,lifeCode,stateCode,melt,boil,weight");
            foreach (var nuc in Nuclide.Table)
            {
                Console.WriteLine(nuc.ToFixedWidthString(culture));
            }

            Console.WriteLine();
            Console.WriteLine("; decayModeCode,decayModeSymbol,decayModeName");
            for (var ix = 0; ix < Nuclide.DecayModeSymbols.Count; ++ix)
            {
                Console.WriteLine($"{Nuclide.DecayModeCodes[ix]} {Nuclide.DecayModeSymbols[ix],-5}{Nuclide.DecayModeNames[culture.TwoLetterISOLanguageName][ix]}");
            }

            Console.WriteLine();
            Console.WriteLine("; z,symbol,z,occurrenceCode,stabilityIndex,decayModeCode,productZ,productSymbol,productA");
            foreach (var nuc in Nuclide.Table)
            {
                foreach (var iso in nuc.Isotopes)
                {
                    var part1 = $"{nuc.Z,3} {nuc.Symbol,-3}{iso.A,3}";
                    if (iso.DecayMode == Decay.None)
                    {
                        Console.WriteLine(part1);
                    }
                    else
                    {
                        var orgChar = iso.Occurrence == Origin.Synthetic ? ' ' : Nuclide.OccurrenceCodes[(int)iso.Occurrence];
                        foreach (var decayIndex in iso.GetDecayIndexes())
                        {
                            var productZ = iso.Transmute(decayIndex, out int productA);
                            Console.WriteLine($"{part1} {orgChar}{iso.StabilityIndex}{Nuclide.DecayModeCodes[decayIndex]} {productZ,3} {Nuclide.Table[productZ].Symbol,-3}{productA,3}");
                        }
                    }
                }
            }

            Console.WriteLine();
            Console.WriteLine("; z,symbol,a,abundance,occurrenceCode,decayModeCodes,halflife");
            foreach (var nuc in Nuclide.Table)
            {
                double total = 0.0;
                foreach (var iso in nuc.Isotopes)
                {
                    Console.WriteLine($"{nuc.Z,3} {nuc.Symbol,-3}{iso.ToFixedWidthString(culture)}");
                    if (iso.IsNatural)
                    {
                        total += iso.Abundance.Value;
                    }
                }
                //if ((total >= 0.1 && total <= 99.1) || total > 100.1)
                //    Console.WriteLine ("*** total = " + total);
            }

            Console.WriteLine();
            Console.WriteLine("; languageCode,totalDiffs");
            var langHits = new Dictionary <string, int>();

            foreach (var nuc in Nuclide.Table)
            {
                foreach (var kv in nuc.NameMap)
                {
                    langHits.TryGetValue(kv.Key, out int v);
                    langHits[kv.Key] = v + 1;
                }
            }
            foreach (var lg in langHits)
            {
                Console.WriteLine($"{lg.Key,-5}{lg.Value,4}");
            }

            Console.WriteLine();
            foreach (var lx in Nuclide.GetLongTable())
            {
                Console.WriteLine(lx);
            }
        }