add core tests

すべてはカバーできていませんが、できる部分までのテストを追加しました。