z_mirror/flib
git clone https://git.raiguard.me/z_mirror/flib
bd1597d
trunk
1local position =require ( "__flib__.position" ) 2 3local res =position . add ( { 1 , 3 } , { - 2 , 1 } ) 4assert ( res [ 1 ] == - 1 ) 5assert ( res [ 2 ] == 4 ) 6 7local res =position . ceil ( { 1.2 , 1.1 } ) 8assert ( res [ 1 ] == 2 ) 9assert ( res [ 2 ] == 2 ) 10 11local res =position . from_chunk ( { 1 , 3 } ) 12assert ( res [ 1 ] == 32 ) 13assert ( res [ 2 ] == 96 ) 14 15assert ( position . distance ( { 1 , 3 } , { 2 , 4 } ) == math . sqrt ( 2 )) 16assert ( position . distance_squared ( { 1 , 3 } , { 2 , 4 } ) == 2 ) 17 18local res =position . div ( { 1 , 2 } , { 5 , 3 } ) 19assert ( res [ 1 ] == 0.2 ) 20assert ( res [ 2 ] == ( 2 / 3 )) 21local res =position . div ( { x =1 , y =2 } , { x =5 , y =3 } ) 22assert ( res . x == 0.2 ) 23assert ( res . y == ( 2 / 3 )) 24 25local res =position . ensure_explicit ( { x =1 , y =2 } ) 26assert ( res . x == 1 ) 27assert ( res . y == 2 ) 28local res =position . ensure_explicit ( { 1 , 2 } ) 29assert ( res . x == 1 ) 30assert ( res . y == 2 ) 31 32local res =position . ensure_short ( { x =1 , y =2 } ) 33assert ( res [ 1 ] == 1 ) 34assert ( res [ 2 ] == 2 ) 35local res =position . ensure_short ( { 1 , 2 } ) 36assert ( res [ 1 ] == 1 ) 37assert ( res [ 2 ] == 2 ) 38 39assert ( position . eq ( { 1 , 1 } , { 1 , 1 } )) 40assert ( not position . eq ( { 1 , 3 } , { 1 , 1 } )) 41assert ( not position . eq ( { 3 , 3 } , { 1 , 1 } )) 42 43local res =position . floor ( { 1.1 , 2.2 } ) 44assert ( res [ 1 ] == 1 ) 45assert ( res [ 2 ] == 2 ) 46 47local res =position . from_chunk ( { 1 , 2 } ) 48assert ( res [ 1 ] == 32 ) 49assert ( res [ 2 ] == 64 ) 50 51assert ( position . le ( { 1 , 1 } , { 1 , 1 } )) 52assert ( position . le ( { 1 , 0 } , { 1 , 1 } )) 53assert ( position . le ( { 0 , 0 } , { 1 , 1 } )) 54assert ( not position . le ( { 2 , 1 } , { 1 , 1 } )) 55assert ( not position . le ( { 2 , 2 } , { 1 , 1 } )) 56 57assert ( position . lt ( { 0 , 0 } , { 1 , 1 } )) 58assert ( not position . lt ( { 1 , 1 } , { 1 , 1 } )) 59assert ( not position . lt ( { 1 , 0 } , { 1 , 1 } )) 60assert ( not position . lt ( { 2 , 1 } , { 1 , 1 } )) 61assert ( not position . lt ( { 2 , 2 } , { 1 , 1 } )) 62 63local res =position . mod ( { 4.5 , 3 } , { 3 , 3 } ) 64assert ( res [ 1 ] == 1.5 ) 65assert ( res [ 2 ] == 0 ) 66 67local res =position . mul ( { 4.5 , 3 } , { 3 , 3 } ) 68assert ( res [ 1 ] == 13.5 ) 69assert ( res [ 2 ] == 9 ) 70 71local res =position . sub ( { 4.5 , 3 } , { 3 , 3 } ) 72assert ( res [ 1 ] == 1.5 ) 73assert ( res [ 2 ] == 0 ) 74 75local res =position . pow ( { 3 , 3 } , { 3 , 2 } ) 76assert ( res [ 1 ] == 27 ) 77assert ( res [ 2 ] == 9 ) 78 79local res =position . to_chunk ( { 100 , 150 } ) 80assert ( res [ 1 ] == 3 ) 81assert ( res [ 2 ] == 4 ) 82 83local res =position . to_tile ( { 3.2 , 3.5 } ) 84assert ( res [ 1 ] == 3 ) 85assert ( res [ 2 ] == 3 )