objective categorical abstract machine language personal data server
at main 33 lines 1.1 kB view raw
1open Mist.Util 2 3let test_leading_zeros () = 4 let cases = Hashtbl.create 4 in 5 Hashtbl.add cases "2653ae71" 0 ; 6 Hashtbl.add cases "blue" 1 ; 7 Hashtbl.add cases "app.bsky.feed.post/454397e440ec" 4 ; 8 Hashtbl.add cases "app.bsky.feed.post/9adeb165882c" 8 ; 9 cases 10 |> Hashtbl.iter (fun key value -> 11 Alcotest.(check int) 12 ("leading zeros on hash " ^ key) 13 value 14 (leading_zeros_on_hash key) ) 15 16let test_shared_prefix_length () = 17 let cases = Hashtbl.create 5 in 18 Hashtbl.add cases ("2653ae71", "2653ae71") 8 ; 19 Hashtbl.add cases ("2653ae71", "2653ae01") 6 ; 20 Hashtbl.add cases ("2653ae71", "26530e71") 4 ; 21 Hashtbl.add cases ("2653ae71", "2603ae71") 2 ; 22 Hashtbl.add cases ("2653ae71", "0653ae71") 0 ; 23 cases 24 |> Hashtbl.iter (fun (a, b) value -> 25 Alcotest.(check int) 26 ("prefix length between " ^ a ^ " and " ^ b) 27 value (shared_prefix_length a b) ) 28 29let () = 30 Alcotest.run "util" 31 [ ( "repo utils" 32 , [ ("leading_zeros", `Quick, test_leading_zeros) 33 ; ("shared_prefix_length", `Quick, test_shared_prefix_length) ] ) ]