IDs stats.
This commit is contained in:
parent
a21de657d0
commit
c94d8f4184
5 changed files with 44 additions and 4 deletions
|
@ -36,6 +36,8 @@
|
|||
members-base-stats
|
||||
print-members-base-info
|
||||
print-members-base-stats
|
||||
get-free-members-ids
|
||||
print-members-ids-stats
|
||||
members-base-tests!
|
||||
)
|
||||
|
||||
|
@ -340,6 +342,31 @@
|
|||
(print month " " (string-intersperse (map number->string vals) " "))
|
||||
(loop (cdr rows)))))))
|
||||
|
||||
;; Returns all free ids
|
||||
(define (get-free-members-ids mb)
|
||||
(let ((ids (list-members-ids mb)))
|
||||
(filter
|
||||
(lambda (id)
|
||||
(not (member id ids)))
|
||||
(gen-all-4digit-primes))))
|
||||
|
||||
;; Prints statistics about allocated and unused valid/invalid IDs.
|
||||
(define (print-members-ids-stats MB)
|
||||
(print "Allocated IDs: "
|
||||
(length (list-members-ids MB))
|
||||
"/"
|
||||
(length (gen-all-4digit-primes))
|
||||
" ("
|
||||
(length (get-free-members-ids MB))
|
||||
" free)")
|
||||
(let ((iids (filter (compose not is-4digit-prime?) (list-members-ids MB))))
|
||||
(when (not (null? iids))
|
||||
(print " Invalid: "
|
||||
(length iids)
|
||||
" ("
|
||||
(string-intersperse (map number->string iids) ", ")
|
||||
")"))))
|
||||
|
||||
;; Performs self-tests of this module.
|
||||
(define (members-base-tests!)
|
||||
(run-tests
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue