コード例 #1
0
        /// <summary>
        /// распарсить строку и сравнить ее с числом
        /// </summary>
        /// <param name="str"> число прописью </param>
        /// <param name="number"> число-образец </param>
        private void ParseNumber(string str, long number)
        {
            var  parsed = RussianNumber.Parse(str);
            bool good   = parsed == number;

            writer.Write("Значение: ");
            writer.Write(ConsoleColor.White, str);
            writer.Write(" (");
            writer.Write(ConsoleColor.White, number.ToString());
            writer.Write("), распознанное: ");
            writer.Write(ConsoleColor.White, parsed.Value.ToString());
            if (parsed.Error > 0)
            {
                writer.Write(", ошибка: ");
                writer.Write(good ? ConsoleColor.DarkRed : ConsoleColor.Red, parsed.Error.ToString("0.000", CultureInfo.InvariantCulture));
            }
            writer.Write("... ");
            if (good)
            {
                writer.WriteLineSuccess();
            }
            else
            {
                writer.WriteLineError();
            }
        }
コード例 #2
0
        /// <summary>
        /// протестировать конвертацию числа в текст и наоборот
        /// </summary>
        public void TestConvertAndBack()
        {
            long start = 0L;
            long count = 50;

            for (long i = start; i < start + count; i++)
            {
                var str = RussianNumber.ToString(i);

                ParseNumber(str, i);
            }
        }
コード例 #3
0
        /// <summary>
        /// функция формирования статистики по используемым символам и токенам
        /// </summary>
        private void Stats()
        {
            var list = new List <string>();

            for (int i = 0; i < 99999; i++)
            {
                list.Add(RussianNumber.ToString(i).ToLowerInvariant());
            }

            // список символов
            var chars = list.SelectMany(e => e).Distinct().Where(e => char.IsLetter(e)).OrderBy(e => e).ToArray();

            // список токенов
            var tokens = list.SelectMany(e => e.Split()).Distinct().OrderBy(e => (e.Length, e)).ToArray();

            // используемые символы
            var validChars = new string(chars);

            // неиспользуемые символы
            var invalidChars = new string("абвгдеёжзийклмнопрстуфхцчшщъыьэюя".Except(chars).ToArray());

            // список токенов текстом
            var tokensList = string.Join(Environment.NewLine, tokens);
        }