- Model based test
- Metamorphic test
- Postconditions
- Round-trip test
- 有効なテストがどの程度の頻度で行われているのか確認しよう。(例:リストに存在しない値に対するlookupがテストの大半を占めていないか)
#!/usr/bin/env python3 | |
import zipfile | |
import sys | |
import re | |
import xml.etree.ElementTree as ET | |
namespaces = { | |
'a': 'http://schemas.openxmlformats.org/drawingml/2006/main', | |
'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships', |
言語アップデートのスプレッドシートが公開されましたので、この文書は2019年7月3日をもって更新を停止します。
透明性を持って広く議論を行うため今後の更新等につきましては haskell-jp/atcoder-haskell-resources リポジトリに移りましたので、そちらをご参照ください。
#!/bin/env stack | |
{- | |
stack --resolver=lts-12.24 script --package extensible | |
-} | |
{-# LANGUAGE DataKinds #-} | |
{-# LANGUAGE OverloadedLabels #-} | |
{-# LANGUAGE PolyKinds #-} | |
{-# LANGUAGE TypeOperators #-} | |
{-# LANGUAGE GADTs #-} |
#!/bin/env stack | |
{- | |
stack --resolver=lts-12.24 script --package extensible | |
-} | |
{-# LANGUAGE DataKinds #-} | |
{-# LANGUAGE OverloadedLabels #-} | |
{-# LANGUAGE PolyKinds #-} | |
{-# LANGUAGE TypeOperators #-} | |
import Data.Extensible |
JSONは NaN
/ Infinity
/ -Infinity
や Date
型等に対応していない。
しかし、JavaScriptのJSONは、これらを解消する仕組みを持っている。
それは JSON.parse
の第二引数の reviver
とJSON.stringify
の第二引数の replacer
だ。
注意が必要なのは、 Date
型は toJSON
メソッドを持つため replacer
に値が渡る前に文字列になってしまうこと。
これに対応するには toJSON
メソッドを一時退避してしまえば良い。
これらを上手く駆使すれば、JSONに型を保ったまま値を保存し復元することができる。
上に行くほど強い
(例えば「休日でなく、かつ大規模イベントと被っている日」はx
)
{-# LANGUAGE DataKinds #-} | |
{-# LANGUAGE FlexibleInstances #-} | |
{-# LANGUAGE FunctionalDependencies #-} | |
{-# LANGUAGE GADTs #-} | |
{-# LANGUAGE MultiParamTypeClasses #-} | |
{-# LANGUAGE PolyKinds #-} | |
{-# LANGUAGE TypeFamilies #-} | |
{-# LANGUAGE TypeOperators #-} | |
{-# LANGUAGE UndecidableInstances #-} |