\ yuko-test.fs - Test driver for Yuko Units Converter
\ 2013 David Meyer <papa@sdf.org>

\ require yuko.fs

: test ( - )
    cr ." Starting tests... "
    ." s>min "
    assert( 4199 s>min 69 = )
    assert( 4200 s>min 70 = )
    assert( 4201 s>min 70 = )

    ." s>hr "
    assert( 251999 s>hr 69 = )
    assert( 252000 s>hr 70 = )
    assert( 252001 s>hr 70 = )

    ." s>day "
    assert( 6047999 s>day 69 = )
    assert( 6048000 s>day 70 = )
    assert( 6048001 s>day 70 = )

    ." min>hr "
    assert( 4199 min>hr 69 = )
    assert( 4200 min>hr 70 = )
    assert( 4201 min>hr 70 = )

    ." min>day "
    assert( 100799 min>day 69 = )
    assert( 100800 min>day 70 = )
    assert( 100801 min>day 70 = )

    ." min>yr "
    assert( 36817199 min>yr 69 = )
    assert( 36817200 min>yr 70 = )
    assert( 36817201 min>yr 70 = )

    ." hr>day "
    assert( 1679 hr>day 69 = )
    assert( 1680 hr>day 70 = )
    assert( 1681 hr>day 70 = )

    ." hr>yr "
    assert( 613619 hr>yr 69 = )
    assert( 613620 hr>yr 70 = )
    assert( 613621 hr>yr 70 = )

    ." day>yr "
    assert( 29219 day>yr 79 = )
    assert( 29220 day>yr 80 = )
    assert( 29221 day>yr 80 = )

    ." min>s "
    assert( 69 min>s 4140 = )
    assert( 70 min>s 4200 = )
    assert( 71 min>s 4260 = )

    ." hr>s "
    assert( 69 hr>s 248400 = )
    assert( 70 hr>s 252000 = )
    assert( 71 hr>s 255600 = )

    ." day>s "
    assert( 69 day>s 5961600 = )
    assert( 70 day>s 6048000 = )
    assert( 71 day>s 6134400 = )

    ." hr>min "
    assert( 69 hr>min 4140 = )
    assert( 70 hr>min 4200 = )
    assert( 71 hr>min 4260 = )

    ." day>min "
    assert( 69 day>min 99360 = )
    assert( 70 day>min 100800 = )
    assert( 71 day>min 102240 = )

    ." yr>min "
    assert( 69 yr>min 36291240 = )
    assert( 70 yr>min 36817200 = )
    assert( 71 yr>min 37343160 = )

    ." day>hr "
    assert( 69 day>hr 1656   = )
    assert( 70 day>hr 1680 = )
    assert( 71 day>hr 1704 = )

    ." yr>hr "
    assert( 69 yr>hr 604854 = )
    assert( 70 yr>hr 613620 = )
    assert( 71 yr>hr 622386 = )

    ." yr>day "
    assert( 79 yr>day 28854 = )
    assert( 80 yr>day 29220 = )
    assert( 81 yr>day 29585 = )

    ." ml>tsp " assert( 47317723 ml>tsp 9600000 = )
    ." ml>tbsp " assert( 47317723 ml>tbsp 3200000 = )
    ." ml>floz " assert( 47317723 ml>floz 1600000 = )
    ." ml>cup " assert( 47317723 ml>cup 200000 = )
    ." ml>pt " assert( 47317723 ml>pt 100000 = )
    ." ml>qt " assert( 47317723 ml>qt 50000 = )
    ." ml>l " assert( 100000 ml>l 100 = )
    ." ml>gal " assert( 47317723 ml>gal 12500 = )

    ." tsp>ml " assert( 9600000 tsp>ml 47317723 = )
    ." tsp>tbsp " assert( 76800 tsp>tbsp 25600 = )
    ." tsp>floz " assert( 76800 tsp>floz 12800 = )
    ." tsp>cup " assert( 76800 tsp>cup 1600 = )
    ." tsp>pt " assert( 76800 tsp>pt 800 = )
    ." tsp>qt " assert( 76800 tsp>qt 400 = )
    ." tsp>l " assert( 9600000000 tsp>l 47317723 = )
    ." tsp>gal " assert( 76800 tsp>gal 100 = )

    ." tbsp>ml " assert( 3200000 tbsp>ml 47317723 = )
    ." tbsp>tsp " assert( 25600 tbsp>tsp 76800 = )
    ." tbsp>floz " assert( 25600 tbsp>floz 12800 = )
    ." tbsp>cup " assert( 25600 tbsp>cup 1600 = )
    ." tbsp>pt " assert( 25600 tbsp>pt 800 = )
    ." tbsp>qt " assert( 25600 tbsp>qt 400 = )
    ." tbsp>l " assert( 3200000000 tbsp>l 47317723 = )
    ." tbsp>gal " assert( 25600 tbsp>gal 100 = )

    ." floz>ml " assert( 1600000 floz>ml 47317723 = )
    ." floz>tsp " assert( 12800 floz>tsp 76800 = )
    ." floz>tbsp " assert( 12800 floz>tbsp 25600 = )
    ." floz>cup " assert( 12800 floz>cup 1600 = )
    ." floz>pt " assert( 12800 floz>pt 800 = )
    ." floz>qt " assert( 12800 floz>qt 400 = )
    ." floz>l " assert( 1600000000 floz>l 47317723 = )
    ." floz>gal " assert( 12800 floz>gal 100 = )

    ." cup>ml " assert( 200000 cup>ml 47317723 = )
    ." cup>tsp " assert( 1600 cup>tsp 76800 = )
    ." cup>tbsp " assert( 1600 cup>tbsp 25600 = )
    ." cup>floz " assert( 1600 cup>floz 12800 = )
    ." cup>pt " assert( 1600 cup>pt 800 = )
    ." cup>qt " assert( 1600 cup>qt 400 = )
    ." cup>l " assert( 200000000 cup>l 47317723 = )
    ." cup>gal " assert( 1600 cup>gal 100 = )

    ." pt>ml " assert( 100000 pt>ml 47317723 = )
    ." pt>tsp " assert( 800 pt>tsp 76800 = )
    ." pt>tbsp " assert( 800 pt>tbsp 25600 = )
    ." pt>floz " assert( 800 pt>floz 12800 = )
    ." pt>cup " assert( 800 pt>cup 1600 = )
    ." pt>qt " assert( 800 pt>qt 400 = )
    ." pt>l " assert( 100000000 pt>l 47317723 = )
    ." pt>gal " assert( 800 pt>gal 100 = )

    ." qt>ml " assert( 50000 qt>ml 47317723 = )
    ." qt>tsp " assert( 400 qt>tsp 76800 = )
    ." qt>tbsp " assert( 400 qt>tbsp 25600 = )
    ." qt>floz " assert( 400 qt>floz 12800 = )
    ." qt>cup " assert( 400 qt>cup 1600 = )
    ." qt>pt " assert( 400 qt>pt 800 = )
    ." qt>l " assert( 50000000 qt>l 47317723 = )
    ." qt>gal " assert( 400 qt>gal 100 = )

    ." l>ml " assert( 100 l>ml 100000 = )
    ." l>tsp " assert( 47317723 l>tsp 9600000000 = )
    ." l>tbsp " assert( 47317723 l>tbsp 3200000000 = )
    ." l>floz " assert( 47317723 l>floz 1600000000 = )
    ." l>cup " assert( 47317723 l>cup 200000000 = )
    ." l>pt " assert( 47317723 l>pt 100000000 = )
    ." l>qt " assert( 47317723 l>qt 50000000 = )
    ." l>gal " assert( 47317723 l>gal 12500000 = )

    ." gal>ml " assert( 12500 gal>ml 47317723 = )
    ." gal>tsp " assert( 100 gal>tsp 76800 = )
    ." gal>tbsp " assert( 100 gal>tbsp 25600 = )
    ." gal>floz " assert( 100 gal>floz 12800 = )
    ." gal>cup " assert( 100 gal>cup 1600 = )
    ." gal>pt " assert( 100 gal>pt 800 = )
    ." gal>qt " assert( 100 gal>qt 400 = )
    ." gal>l " assert( 12500000 gal>l 47317723 = )

    ." All tests successful." cr ;



test

\ +JMJ