public static void ToIntTest(int value)
        {
            var instance = new CommonEventNumberArgIndex(value);

            var intValue = instance.ToInt();

            // セットした値と取得した値が一致すること
            Assert.AreEqual(intValue, value);
        }
        public static void ConstructorIntTest(int value, bool isError)
        {
            var errorOccured = false;

            try
            {
                var _ = new CommonEventNumberArgIndex(value);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーフラグが一致すること
            Assert.AreEqual(errorOccured, isError);
        }
        public static void CastToIntTest(int value)
        {
            var castValue = 0;

            var instance = new CommonEventNumberArgIndex(value);

            var errorOccured = false;

            try
            {
                castValue = instance;
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーが発生しないこと
            Assert.IsFalse(errorOccured);

            // 元の値と一致すること
            Assert.AreEqual(castValue, value);
        }
        /// <summary>
        /// コモンイベント数値引数の文字列を取得する。
        /// </summary>
        /// <param name="id">コモンイベントID</param>
        /// <param name="intArgIndex">[Range(0, 0~4)]引数インデックス</param>
        /// <param name="value">引数設定値</param>
        /// <param name="type">[NotNull] イベントコマンド種別</param>
        /// <param name="desc">[Nullable] 付加情報</param>
        /// <returns>コモンイベント数値引数の文字列</returns>
        public string GetCommonEventIntArgSentence(CommonEventId id,
                                                   CommonEventNumberArgIndex intArgIndex, int value,
                                                   EventCommandSentenceType type, EventCommandSentenceResolveDesc desc)
        {
            // 値が変数アドレス値の場合は引数の設定によらず変数アドレスの文字列だけを表示
            if (value.IsVariableAddressSimpleCheck())
            {
                return(Master.GetNumericVariableAddressString(value, type, desc));
            }

            // 該当コモンイベントが存在しないときは値をそのまま表示
            var target = Master.CommonEventList.FirstOrDefault(x => x.Id == id);

            if (target is null)
            {
                return(value.ToString());
            }

            // 該当引数が設定されていないときは値をそのまま表示
            if (intArgIndex >= target.NumberArgsLength)
            {
                return(value.ToString());
            }
            var argDesc = target.NumberArgDescList[intArgIndex];

            // 引数の値種別によって表示内容を決定
            if (argDesc.ArgType == CommonEventArgType.Normal)
            {
                return(value.ToString());
            }
            if (argDesc.ArgType == CommonEventArgType.ReferDatabase)
            {
                // -1以下の場合は手動指定した文字列
                if (value < 0)
                {
                    var targetCase = argDesc.GetAllSpecialCase()
                                     .FirstOrDefault(x => x.CaseNumber == value);

                    return(targetCase is null
                        ? value.ToString()
                        : $"{value.ToString()}:{targetCase.Description}");
                }

                // 0以上の場合はデータ名
                var(isFind, dataName) = Master.GetDatabaseDataName(argDesc.DatabaseUseDbKind,
                                                                   argDesc.DatabaseDbTypeId, value);
                if (!isFind)
                {
                    return(value.ToString());
                }

                return($"{value.ToString()}:{dataName}");
            }

            if (argDesc.ArgType == CommonEventArgType.Manual)
            {
                var targetCase = argDesc.GetAllSpecialCase()
                                 .LastOrDefault(x => x.CaseNumber == value);

                return(targetCase is null
                    ? value.ToString()
                    : $"{value.ToString()}:{targetCase.Description}");
            }

            // 通常ここへは来ない
            throw new InvalidOperationException();
        }