File size distribution: Difference between revisions

Content added Content deleted
Line 473: Line 473:
displaySize :: Integer -> String
displaySize :: Integer -> String
displaySize n
displaySize n
| n <= 2^10 = show n <> "B"
| n <= 2^10 = show n <> "B"
| n >= 2^10 && n <= 2^20 = display "KB" $ 2^10
| n >= 2^10 && n <= 2^20 = display "KB" $ 2^10
| n >= 2^20 && n <= 2^30 = display "MB" $ 2^20
| n >= 2^20 && n <= 2^30 = display "MB" $ 2^20
Line 496: Line 496:
displayFrequency :: Integer -> FrequencyGroup -> IO ()
displayFrequency :: Integer -> FrequencyGroup -> IO ()
displayFrequency filesCount ((min, max), count) =
displayFrequency filesCount ((min, max), count) =
printf "%5s <-> %5s = %5d %5.2f%%: %-5s\n"
printf "%5s <-> %5s = %5d %6.3f%%: %-5s\n"
(displaySize min)
(displaySize min)
(displaySize max)
(displaySize max)
Line 505: Line 505:
percentage :: Double
percentage :: Double
percentage = (realToFrac count / realToFrac filesCount) * 100
percentage = (realToFrac count / realToFrac filesCount) * 100
bars = replicate (round percentage) '█'
bars = replicate (round $ percentage * 4) '█' -- % of 25% (max group size)


parseArgs :: [String] -> Either String (FilePath, Int)
parseArgs :: [String] -> Either String (FilePath, Int)
Line 564: Line 564:


Distribution:
Distribution:
0B <-> 83B = 43580 10.093%: ████████████████████████████████████████
0B <-> 83B = 43580 10.09%: ██████████
84B <-> 167B = 40942 9.48%: █████████
84B <-> 167B = 40942 9.482%: ██████████████████████████████████████
168B <-> 251B = 24867 5.76%: ██████
168B <-> 251B = 24867 5.759%: ███████████████████████
252B <-> 335B = 20019 4.64%: █████
252B <-> 335B = 20019 4.636%: ███████████████████
336B <-> 419B = 15623 3.62%: ████
336B <-> 419B = 15623 3.618%: ██████████████
420B <-> 503B = 13403 3.10%: ███
420B <-> 503B = 13403 3.104%: ████████████
504B <-> 587B = 12778 2.96%: ███
504B <-> 587B = 12778 2.959%: ████████████
588B <-> 671B = 12125 2.81%: ███
588B <-> 671B = 12125 2.808%: ███████████
672B <-> 755B = 12736 2.95%: ███
672B <-> 755B = 12736 2.950%: ████████████
756B <-> 839B = 9565 2.22%: ██
756B <-> 839B = 9565 2.215%: █████████
826B <-> 2KB = 83110 19.247%: █████████████████████████████████████████████████████████████████████████████
826B <-> 2KB = 83110 19.25%: ███████████████████
2KB <-> 2KB = 34092 7.90%: ████████
2KB <-> 2KB = 34092 7.895%: ████████████████████████████████
2KB <-> 3KB = 20814 4.82%: █████
2KB <-> 3KB = 20814 4.820%: ███████████████████
3KB <-> 4KB = 15088 3.49%: ███
3KB <-> 4KB = 15088 3.494%: ██████████████
4KB <-> 5KB = 10327 2.39%: ██
4KB <-> 5KB = 10327 2.392%: ██████████
5KB <-> 6KB = 7608 1.76%: ██
5KB <-> 6KB = 7608 1.762%: ███████
6KB <-> 6KB = 6260 1.45%:
6KB <-> 6KB = 6260 1.450%: ██████
6KB <-> 7KB = 4562 1.06%:
6KB <-> 7KB = 4562 1.057%: ████
7KB <-> 8KB = 3894 0.90%:
7KB <-> 8KB = 3894 0.902%: ████
8KB <-> 16KB = 18833 4.36%: ████
8KB <-> 16KB = 18833 4.362%: █████████████████
16KB <-> 24KB = 6188 1.43%:
16KB <-> 24KB = 6188 1.433%: ██████
24KB <-> 32KB = 3342 0.77%:
24KB <-> 32KB = 3342 0.774%: ███
32KB <-> 40KB = 2100 0.49%:
32KB <-> 40KB = 2100 0.486%: ██
40KB <-> 48KB = 1447 0.34%:
40KB <-> 48KB = 1447 0.335%:
48KB <-> 56KB = 966 0.22%:
48KB <-> 56KB = 966 0.224%:
56KB <-> 64KB = 726 0.17%:
56KB <-> 64KB = 726 0.168%:
64KB <-> 72KB = 852 0.20%:
64KB <-> 72KB = 852 0.197%:
72KB <-> 81KB = 563 0.13%:
72KB <-> 81KB = 563 0.130%:
81KB <-> 161KB = 2368 0.55%:
81KB <-> 161KB = 2368 0.548%: ██
161KB <-> 242KB = 967 0.22%:
161KB <-> 242KB = 967 0.224%:
242KB <-> 322KB = 558 0.13%:
242KB <-> 322KB = 558 0.129%:
322KB <-> 403KB = 287 0.07%:
322KB <-> 403KB = 287 0.066%:
403KB <-> 483KB = 176 0.04%:
403KB <-> 483KB = 176 0.041%:
483KB <-> 564KB = 100 0.02%:
483KB <-> 564KB = 100 0.023%:
564KB <-> 644KB = 77 0.02%:
564KB <-> 644KB = 77 0.018%:
644KB <-> 725KB = 101 0.02%:
644KB <-> 725KB = 101 0.023%:
725KB <-> 805KB = 77 0.02%:
725KB <-> 805KB = 77 0.018%:
815KB <-> 2MB = 282 0.07%:
815KB <-> 2MB = 282 0.065%:
2MB <-> 2MB = 123 0.03%:
2MB <-> 2MB = 123 0.028%:
2MB <-> 3MB = 74 0.02%:
2MB <-> 3MB = 74 0.017%:
3MB <-> 4MB = 59 0.01%:
3MB <-> 4MB = 59 0.014%:
4MB <-> 5MB = 26 0.01%:
4MB <-> 5MB = 26 0.006%:
5MB <-> 6MB = 17 0.00%:
5MB <-> 6MB = 17 0.004%:
6MB <-> 6MB = 20 0.00%:
6MB <-> 6MB = 20 0.005%:
6MB <-> 7MB = 7 0.00%:
6MB <-> 7MB = 7 0.002%:
7MB <-> 8MB = 6 0.00%:
7MB <-> 8MB = 6 0.001%:
8MB <-> 16MB = 23 0.01%:
8MB <-> 16MB = 23 0.005%:
16MB <-> 24MB = 10 0.00%:
16MB <-> 24MB = 10 0.002%:
24MB <-> 32MB = 9 0.00%:
24MB <-> 32MB = 9 0.002%:
32MB <-> 40MB = 4 0.00%:
32MB <-> 40MB = 4 0.001%:
40MB <-> 49MB = 5 0.00%:
40MB <-> 49MB = 5 0.001%:
73MB <-> 81MB = 3 0.00%:
73MB <-> 81MB = 3 0.001%:
98MB <-> 196MB = 8 0.00%:
98MB <-> 196MB = 8 0.002%:
294MB <-> 392MB = 1 0.00%: </pre>
294MB <-> 392MB = 1 0.000%: </pre>


=={{header|Julia}}==
=={{header|Julia}}==