nadesiko3
Version:
Japanese Programming Language
618 lines (583 loc) • 22.6 kB
Plain Text
> nadesiko3core@3.6.22 test
> cross-env TZ=Asia/Tokyo mocha ./test
or_test.js
✔ 『または』がうまく動いてない #1379
✔ 『かつ』がうまく動いてない #1379
array_test
✔ 配列の基本テスト
✔ 二次元配列の参照 A[1][1]
✔ 二次元配列の参照 A@1,1 #976 #1000
✔ 二次元配列@の参照 #976
✔ 二次元配列の代入 #976
✔ 要素から配列を記述する際に明示的な()が必要になる不具合 #1000
✔ 配列を「代入」文するとエラーが出る問題 (nadesiko3 #1354)(core #75)
✔ 配列連番作成 #1361 (core #78)
✔ 配列関数適用 #1361 (core #78)
✔ 配列フィルタ #1361 (core #78)
✔ 配列プッシュ #1361 (core #78)
✔ 配列要素作成 #1361 (core #78)
✔ 配列入替 #1374 (core #82)
✔ 連続する配列と助詞の問題 #1627
basic
✔ print simple
✔ print
✔ string
✔ rawstring
✔ string_ex1
✔ string_ex2
✔ string_ex3
✔ raw string - 🌿 .. 🌿
✔ EX string - 🌴 .. 🌴
✔ string - LF
✔ space 「・」
✔ string - 🌴 ... 🌴
✔ システム定数
✔ 助詞の後に句読点
✔ 代入文
✔ 連文後の代入文
✔ 〜を〜に定める
✔ 文字列 - &と改行
✔ 名前に数字を持つ変数を使う
✔ 名前に絵文字を持つ変数を使う
✔ ラインコメントが正しく処理されない問題 (#112)
✔ ラインコメントに文字列記号があり閉じていないとエラーになる(#725)
✔ 範囲コメントに文字列記号があり閉じていないとエラーになる(#731)
✔ usedFuncs
✔ 論文などで使われる句読点「,」を「、」(#735)
✔ 条件分岐のインデント構文
✔ 💡のインデント構文 #1184
✔ 独立した助詞『ならば』の位置の取得
✔ preCodeを考慮したソースマップ
✔ 実行速度優先 - 1行のみ
✔ 実行速度優先 - ブロック内に適用
✔ 実行速度優先 - 関数宣言の上方下方参照
✔ 空白で区切って文をつなげた場合
✔ return_none: true のaddFuncで定義した関数が「それ」に値を代入しないことを確認する
✔ 制御構文で一語関数を使う
✔ そう
✔ 「〜時間」の「間」を制御構文として認識させない #831
✔ 「もしFが存在するならば」がFと「存在する」の比較になる問題の修正 #830
✔ 無名関数が警告を出す問題の修正 #841
✔ 「AはBである」構文 #939
✔ 「AはBです」構文 #974
✔ 複数変数代入構文 #563
✔ 複数定数代入構文 #563
✔ 複数定数代入構文その2 #563
✔ 複数代入文の問題 #1027
✔ もし文で「ならば」の前の空行でエラー #1079
✔ 『増やす』『減らす』文の追加 #1145
✔ 『増やす』『減らす』文の追加 #1386 (core #86)
✔ 文字列記号と全角コメント閉じ記号の組み合わせがある時うまく動いていない(core #45)
✔ 「もの」構文(#1614)
✔ 変数をObjectからMapに変更する(core#152)
calc_test.js
✔ basic
✔ 足し算
✔ 引き算
✔ 掛け算
✔ 連続演算:して
✔ 連続演算:て-3に5を掛けて表示
✔ 配列
✔ ネスト配列
✔ ネスト配列で、マイナスを含むときのバグ修正 (#276)
✔ オブジェクト
✔ 階乗
✔ 否定
✔ 配列簡易記号
✔ JSON配列-改行あり
✔ JSON配列-カンマ省略
✔ JSON配列-ネスト
✔ JSONオブジェクト-改行あり
✔ JSONオブジェクト-値を省略した場合
✔ JSONオブジェクト-キーを文字列で囲わなかった場合
✔ 文字列→数値への暗黙的変換
✔ 空配列テスト
✔ 単項演算子 minus number
✔ 単項演算子 minus word
✔ 論理演算
✔ カッコ内の関数呼び出し
✔ 文字列の埋め込み変数加算
✔ 文字列の埋め込み変数減算
✔ 文字列の埋め込み変数乗算
✔ 文字列の埋め込み変数除算
✔ 文字列の埋め込み変数剰余
✔ 文字列の埋め込み変数冪乗
✔ 比較演算子
✔ ビット演算
✔ 連文で計算 (#729)
✔ 厳格な比較 (#999)
✔ なでしこ式関数呼び出しで、途中に四則演算がある場合の処理 (#1188)
✔ 連文呼び出しにおけるスタックの余剰チェックを厳しくする #87
✔ 代入文における連文 #88
✔ 演算子「**」(#1424)
✔ 代入文における関数呼び出し(#1449)
✔ bigint足し算
✔ bigint四則演算
✔ bigint単項演算子
✔ bigint比較演算子
✔ bigintビット演算
core_module_test
✔ hello
✔ calc
✔ funccall
✔ ナデシコバージョン
debug
✔ print simple
dncl2 (core #41)
✔ 基本
✔ 繰り返し文([繰り返す]なし)
✔ 繰り返し文([繰り返す]あり)
✔ もし文
✔ もし文(ネスト)
✔ 繰り返し文(ネスト)
✔ 記号でインデント
✔ 記号でインデント2
✔ 配列の初期化
✔ 「情報」試作問題 (検討用イメージ)
✔ 「情報」サンプル問題-当選数を決めるプログラム2
✔ 「情報」サンプル問題-当選数を決めるプログラム2改
✔ and/or/not
✔ 演算子「**」(#1424)
✔ 関数・・・定義する (core #145)
dncl (#1140)
✔ 代入文
✔ もし文
✔ 簡単な実行テスト
✔ 配列の入れ替え
✔ 配列の自動初期化(#1143)
✔ インデントを|で表現する
✔ 表示エミュレート
✔ 乱数エミュレート #1146
✔ 二進 #1146
✔ 減らす・増やす #1149
✔ DNCLで「もし」文の否定形が動かない #1148
✔ DNCLで後判定のループが動かない #1147
✔ DNCLで÷は整数の割り算 #1152
✔ 「!」を💡で書けるようにする #1184
✔ DNCL - を実行し,そうでなければ
✔ DNCL - を実行し,そうでなくもし
✔ DNCL - を実行し,そうでなくもし - の後にカンマがないときも動くように
✔ DNCL - でないならば
✔ DNCL - 増やしながら
✔ DNCL - 減らしながら
✔ DNCL - 増やす、減らす
✔ DNCL - 増やしながら
✔ DNCL - すべての要素を0にする
error_message
✔ 戻り値のない関数を代入文の結果に使おうとする #175
字句解析エラー
✔ エラー位置の取得
構文エラー
✔ 比較
✔ 単項演算子
✔ 2項演算子
✔ 変数のみの式
✔ 複数のノードが使われていない場合
✔ 関数の宣言でエラー
✔ "_"がある場合
実行時エラー
✔ 「エラー発生」の場合
✔ エラー位置をプロパティから取得 - 単純な例
✔ エラー位置をプロパティから取得 - 前後に文がある場合
✔ エラー位置をプロパティから取得 - 1行目の場合
✔ エラー位置をプロパティから取得 - repeatTimes
✔ 「秒後」の中でエラーが発生した場合
インデント構文のエラー
✔ 『ここまで』を使用
✔ 『ここまで』を使用 - "_"を使った場合
警告の表示
✔ 未定義の変数を参照したとき
✔ 存在しない高速化オプションを指定したとき
✔ ユーザー定義関数を上書きしたとき
✔ プラグイン関数を上書きしたとき
error_test
✔ エラー処理 - 基本
flow_test
✔ もし
✔ もし - AがBならば
✔ もし - ネスト
✔ もし - ネスト - 違えばの一致
✔ 違えばもし
✔ 回
✔ 回、ここから
✔ 回、繰り返す(#924)
✔ 回繰り返す(#924)
✔ 回 - 「それ」の自動挿入
✔ の間
✔ の間、ここから
✔ の間、繰り返す #927
✔ 一致する間
✔ 等しい間
✔ 未満の間
✔ 超えの間
✔ 範囲内の間
✔ 繰り返す
✔ 繰り返す2
✔ 連続計算
✔ もし-日本語による比較
✔ もし--一行文。違えば
✔ もし-しなければ
✔ 回-break
✔ 反復 - 配列
✔ 反復 - オブジェクト
✔ 反復 - 変数付き
✔ 反復2 - 変数付き
✔ 反復 - prototypeを無視
✔ ここから反復
✔ ここから繰り返し
✔ ここから3回
✔ 不等号
✔ 繰り返しのネスト
✔ 繰り返し:AからBまででA>Bの時
✔ 繰り返し:AからBまででA>Bの時
✔ もし、と戻るの組み合わせ
✔ もしと抜けるの組み合わせ
✔ もし文のエラー(#378)
✔ 条件分岐(#694)
✔ 条件分岐で違えばを省略
✔ 条件分岐で違えばの後にカンマがあってもエラーにならない #942
✔ N回をN|回に分ける
✔ 「、」と「,」の違いが分かりづらい #877
✔ 「。。。」=「ここまで」#925
✔ 「或いは」「あるいは」を追加#987
✔ 「増繰り返す」「減繰り返す」を追加#1140
✔ 「増やして繰り返す」「減らして繰り返す」を追加#1140
✔ ならばの直前に空白があるとエラー(#1141)
✔ -1を含む「もし」文が動かない core #47
✔ 「もし」...「でなければ」
✔ 「もし」AがBならば
✔ 「AからBまでNずつ増やし繰り返す」文でBからAまでも実行してしまう問題 #79
✔ 「AからBまでNずつ減らし繰り返す」文でBからAまでも実行してしまう問題 #1753
✔ もしの省略を実装する nadesiko3#1604
✔ 範囲オブジェクトを指定した繰り返し #1704
✔ 対象がローカル変数になっていた問題 #1723
✔ 多重ループ内の反復で、回数や対象の値を復元するように配慮する #1735
関数呼び出しテスト
✔ 関数式の呼び出し - 足す(2,3)を表示。
✔ 四則演算を連文で
✔ 「そう」のテスト
✔ 後方で定義した関数を前方で使う1
✔ 後方で定義した関数を前方で使う2
✔ 代入と表示
✔ 代入1
✔ 代入2
✔ 代入3
✔ 配列への代入
✔ **には**構文 - 基本
✔ **には**構文 - 配列カスタムソート
✔ 階乗計算 - 再帰
✔ 連続文後の代入
✔ 連続文後の=代入
✔ 関数の引数に関数呼び出しがある場合
✔ 配列カスタムソートの基本的な使い方例
✔ 引数の順番を入れ替えて呼び出す(#342)その1
✔ 引数の順番を入れ替えて呼び出す(#342)その2
✔ 引数の順番を入れ替えて呼び出す(#342)その3
✔ 可変長引数 #729
✔ ローカル変数が解決できない1 #1210
✔ ローカル変数が解決できない2 #1210
✔ ローカル変数の配列が解決できない2 #1213
✔ ひらがなだけの関数名がエラーになる #1214
✔ 『ナデシコ続』で変数がクリアされてしまう #1246
✔ ユーザー引数で「それ」補完を行う
✔ ユーザー関数で引数が不足しているとき、それが補完されない場合がある #1316
✔ 代入文で関数呼び出し
✔ 再帰呼び出しでローカル関数の引数が壊れる #1663
✔ 非同期処理の関数呼び出しで戻り値がundefinedになる1 (203ms)
✔ 非同期処理の関数呼び出しで戻り値がundefinedになる2 (206ms)
func_test
✔ 簡単な関数定義
✔ 引数付き関数定義
✔ 引数付き関数定義(互換性のため)
✔ 三つの引数
✔ 戻るのテスト
✔ 再帰テスト
✔ ローカル変数1
✔ ローカル変数2
✔ ローカル変数3
✔ ローカル定数1
✔ ローカル定数2
✔ 助詞の複数定義
✔ それを関数の戻り値とする
✔ 英語言語っぽい関数定義
✔ 関数の参照渡し
✔ 無名関数
✔ 暗黙的な無名関数「には」
✔ 暗黙的な無名関数「は〜」
✔ **すること #936
✔ 関数で使える「引数」が使えなくなっている #1741
indent
✔ もし
✔ もし 違えば
✔ 5回
✔ 3回と5回
✔ もし 違えば 入れ子
✔ JSONで改行がある場合(#699)(core #46)
✔ 文字列内に改行がある場合
✔ コメント内に文字列リテラルの開始記号がある場合
✔ 複数行コメント内に文字列リテラルの開始記号がある場合
✔ 改行を含む、絵文字による文字列がある場合
✔ 前後が一致しない括弧がある場合
✔ 「違えば」に行コメントがある場合
✔ 「違えば」に範囲コメントがある場合
✔ コメントのみの行がある場合
✔ "・"がある場合
✔ 「違えばもし」の場合(#940)
✔ ソースマップ
✔ ブロック構造の取得
✔ ブロック構造の取得 - 複数行にまたがる構文
✔ ブロック構造の取得 - 違えば
✔ 2つ目の関数の定義が失敗する(#40)
inline_indent_test
✔ 繰り返す
✔ 繰り返す2
✔ もし-日本語による比較
✔ 回-break
✔ 反復 - 配列
✔ 反復 - オブジェクト
✔ 反復 - 変数付き
✔ 繰り返しのネスト
✔ もし、と戻るの組み合わせ
✔ もし文のエラー(#378)
✔ 「増繰り返す」「減繰り返す」を追加#1140
✔ #1215 インラインインデント構文 - 回
✔ #1215 インラインインデント構文 - もし
✔ #1215 インラインインデント構文 - エラー監視
✔ #1215 インラインインデント構文3 - ネスト
✔ #1273 インラインインデントで無駄な区切り文字の問題
✔ 2つ目の関数の定義が失敗する(#40)
✔ 「もし」のネスト
✔ インラインインデントでJSON(core #46)
✔ 行頭のインデント記号が増える件について #1333(core #46)
✔ 一行に2つの文を書いたときのインデントがおかしい。 #1333(core #66)
lex_test
✔ 送り仮名の省略テスト
✔ 仮名表記の曖昧
✔ 範囲コメントの処理
✔ 文字列の埋め込み
✔ 文字列の埋め込み語句のかな省略
✔ 文字列に式を埋め込む
✔ 文字列の埋め込み変数名全角英数字
✔ 文字列の埋め込みで対応しない閉じ括弧がある場合
✔ 文字列の埋め込み配列
✔ はい/いいえ
✔ A = 8の書き方
✔ 数値表現のテスト
✔ 2進数/8進数/16進数のテスト
✔ bigintのテスト
✔ 《特別名トークン》のテスト
✔ 以上、以下、超、未満 (#918)
✔ ソースマップ - 単純な例
✔ ソースマップ - スペース扱いの文字
✔ ソースマップ - 複数行の場合
✔ ソースマップ - 行コメント
✔ ソースマップ - 範囲コメント
✔ ソースマップ - 範囲コメントの直後に文字がある場合
✔ ソースマップ - "_"による改行
✔ ソースマップ - インデント構文
✔ ソースマップ - string_ex
✔ 「ならば」+「(全角|半角)空白」直後の改行が消える問題 #1015
✔ 助詞の前後に空白があるとエラーになる問題 #1079
✔ 丸付き数字が変数名として使えない #1185
✔ 絵文字の四則演算を認識する #1183
literal_test
✔ 非数
✔ 無限大
✔ 十六進法のテスト
✔ 八進法のテスト
✔ 二進法のテスト
✔ 数値区切文字
✔ 単位のテスト #994
✔ bigintのテスト
✔ 範囲オブジェクトのテスト #1704
十進法のテスト
✔ 0
✔ 小数点
✔ 指数表記
nako_lexer_test
✔ トークンの区切りテスト
✔ 関数の登録テスト
✔ 変数は登録しないというテスト
nako_logger_test
✔ 色付けのテスト
✔ ログの取得のテスト
✔ 複数のリスナーのテスト1
✔ 複数リスナーのテスト2
✔ 複数リスナーのテスト3
✔ 複数リスナーのテスト4
✔ 複数リスナーのテスト5
or_test.js
✔ 『または』がうまく動いてない #1379
✔ 『かつ』がうまく動いてない #1379
✔ 『または』が動かない #1379
plugin_csv_test
✔ CSV取得
✔ TSV取得
✔ 表CSV変換
✔ 表TSV変換
plugin_math_test
✔ 算術関数/SIGN
✔ 算術関数/FRAC
✔ ATAN2
✔ 座標角度計算 (#875)
plugin_promise_test
✔ Promise
plugin_system_test
✔ 簡単なテスト
✔ ナデシコエンジンを表示
✔ 四則演算
✔ 掛けるの拡張
✔ JS実行
✔ 型変換
✔ 変数型確認
✔ SIN/COS/TAN
✔ RGB
✔ LOGN
✔ 文字挿入
✔ 出現回数
✔ シングル文字列
✔ 文字抜き出す
✔ RIGHT
✔ LEFT
✔ 切り取る
✔ 文字削除
✔ 置換
✔ 単置換
✔ 空白除去
✔ 正規表現置換
✔ 正規表現マッチ - /.../を省略
✔ 正規表現マッチ - /.../あり グルーピングなし
✔ 正規表現マッチ - /.../あり グルーピングあり
✔ 正規表現マッチ2
✔ 正規表現区切る
✔ 通貨形式
✔ ゼロ埋め
✔ 空白埋め
✔ 配列要素数
✔ 配列一括挿入
✔ 配列ソート
✔ 配列数値変換
✔ 配列数値ソート
✔ 配列カスタムソート
✔ 配列逆順
✔ 配列切取/配列削除
✔ 配列削除で辞書型変数を指定
✔ 配列切り取りで範囲を指定 #1704
✔ 配列複製
✔ 配列足す
✔ 配列最大値
✔ 配列最小値
✔ 配列合計
✔ 表ソート
✔ 表数値ソート
✔ 表ピックアップ
✔ 表完全一致ピックアップ
✔ 表検索
✔ 表列数
✔ 表行列交換
✔ 表右回転
✔ 表重複削除
✔ 表列取得
✔ 表列挿入
✔ 表列削除
✔ 表列合計
✔ 表曖昧検索
✔ 表正規表現ピックアップ
✔ 文字種変換
✔ 空配列
✔ 空ハッシュ
✔ 空オブジェクト
✔ 四捨五入
✔ 切り上げ・切り捨て
✔ カタカナか判定
✔ 数字か判定
✔ 数列か判定
✔ XOR
✔ 進数変換
✔ CHR-サロゲートペアを考慮
✔ ASC-サロゲートペアを考慮
✔ 文字数-サロゲートペアを考慮
✔ 文字列分解-サロゲートペアを考慮
✔ プラグイン一覧取得
✔ 配列切り取り
✔ ハッシュ
✔ 辞書型変数 #950
✔ 「辞書キー削除」の問題 core#91
✔ 空辞書の定義間違い #1060
✔ ビット演算
✔ 論理演算
✔ 英数記号全角半角変換
✔ カタカナ全角半角変換
✔ JS関数実行
✔ 文字列検索
✔ TYPEOF
✔ URLエンコード
✔ URLデコード
✔ URLパラメータ解析
✔ 助詞省略形のコマンド
✔ HYPOTの問題 #603
✔ ナデシコする1/2
✔ ナデシコする2/2
✔ 敬語 #728
✔ 一致 #831
✔ 「ナデシコ」が空白行を出力してしまう問題の修正
✔ JSメソッド実行 #854
✔ BASE64 #1102
✔ 文字列分割 #1098
✔ 出現回数 #1105
✔ 日時処理(簡易) #1117
✔ 日時差 #1117
✔ 日時加算 #1117
✔ 日時書式変換 #1117
✔ 日時書式変換 #1121
✔ 『昨日』の問題 #1124
✔ 『二乗』 #1140
✔ 『偶数』『奇数』 #1146
✔ 範囲切り取る(core#164)
✔ 「予約語一覧取得」「助詞一覧取得」 #1692
✔ 配列切り取り
✔ 範囲オブジェクトを指定する関数 #1704
✔ 参照 #1704
✔ 「?? 計算式文」 #1745
prepare
✔ simple
✔ simple-multibytes
✔ convert num flag
✔ str
✔ str2
✔ str3 - 全角を半角自動変換
✔ str4 - 絵文字文字列 - 全角を半角自動変換
✔ CR+LF1
✔ CR+LF2
✔ Multibyte Flag to Singlebyte Flag
✔ convertTable
✔ 「,.」を「、。」として扱う(#735)
✔ 複数行コメント内にある文字列記号でエラーになる問題(#731)
re_test
✔ 正規表現マッチ - 基本
✔ 正規表現マッチ - 抽出文字列
side_effects_test
✔ 変数の定義 - 1
✔ 関数の定義 - 変数として参照
✔ 関数の定義 - 関数として参照
✔ 関数の定義 - 関数として定義した場合
✔ プラグイン変数の上書き
✔ プラグイン関数の上書き
✔ プラグイン関数の上書き後にリセット
✔ addFuncで設定した関数の上書き
✔ 「初期化」と「!クリア」を呼ぶ
✔ 余分なNakoGlobalが生成されないこと #1246
variable_scope_test
✔ 関数内からグローバル変数へ代入
✔ 関数内からグローバル変数を参照
✔ 変数のshadowing
✔ ネストした関数定義
✔ JavaScriptで使えない変数名の使用 - グローバル変数の場合
✔ JavaScriptで使えない変数名の使用 - ローカル変数の場合
✔ JavaScriptで使えない変数名の使用 - 関数からグローバル変数を参照する場合
✔ JavaScriptで使えない変数名の使用 - 変数のshadowing
✔ 「代入」文が正しく動作しない #1208
✔ 代入文のテスト #1225
✔ 定数文のテスト #1225
✔ 変数宣言のテスト core#158
546 passing (1s)