Tests are included in the following commits.