add tests

    ===== Coverage summary ======
    Statements   : 100% ( 89/89 )
    Branches     : 100% ( 31/31 )
    Functions    : 100% ( 10/10 )
    Lines        : 100% ( 89/89 )