114 lines
3.3 KiB
Plaintext
114 lines
3.3 KiB
Plaintext
use test.md5_self;
|
|
use std.process_bar;
|
|
use std.file;
|
|
use std.runtime;
|
|
use std.io;
|
|
use std.math;
|
|
|
|
srand();
|
|
|
|
var compare = func() {
|
|
var ch = [
|
|
"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","+",
|
|
"_","*","/","\'","\"",".",",",";",":","<",">","!","@","#","$","%",
|
|
"^","&","*","(",")","-","=","\\","|","[","]","{","}","`"," ","\t","?"
|
|
];
|
|
return func(begin, end) {
|
|
var byte = 0;
|
|
var total = end-begin;
|
|
var timestamp = maketimestamp();
|
|
timestamp.stamp();
|
|
var bar = process_bar.high_resolution_bar(40);
|
|
for(var i = begin; i<end; i += 1) {
|
|
var s = "";
|
|
for(var j = 0; j<i; j += 1) {
|
|
s ~= ch[rand()*size(ch)];
|
|
}
|
|
byte += size(s);
|
|
var res = md5(s);
|
|
if (cmp(res, md5_self.md5(s))) {
|
|
die("error: "~str(i));
|
|
}
|
|
if (i-begin-int((i-begin)/4)*4==0) {
|
|
print(
|
|
"\e[1000D ", bar.bar((i-begin+1)/total),
|
|
" (", i-begin+1, "/", total, ")\t",
|
|
res, " byte: ", int(byte/1024), "k"
|
|
);
|
|
}
|
|
}
|
|
print(
|
|
"\e[1000D ", bar.bar((i-begin)/total),
|
|
" (", i-begin, "/", total, ")\t",
|
|
res, " byte: ", int(byte/1024), "k",
|
|
" time: ", timestamp.elapsedMSec()
|
|
);
|
|
print("\n");
|
|
};
|
|
}();
|
|
|
|
var add_all_cpp_files = func(vec, path) {
|
|
foreach(var p; file.find_all_files_with_extension(path,"cpp","h")) {
|
|
append(vec, path~"/"~p);
|
|
}
|
|
}
|
|
|
|
var filechecksum = func() {
|
|
var files = [];
|
|
foreach(var p; file.find_all_files_with_extension("./test","nas")) {
|
|
append(files, "./test/"~p);
|
|
}
|
|
foreach(var p; file.find_all_files_with_extension("./std","nas")) {
|
|
append(files, "./std/"~p);
|
|
}
|
|
foreach(var p; file.find_all_files_with_extension("./module","nas","cpp")) {
|
|
append(files, "./module/"~p);
|
|
}
|
|
foreach(var p; file.find_all_files_with_extension(".","md")) {
|
|
append(files, "./"~p);
|
|
}
|
|
add_all_cpp_files(files, "./src");
|
|
add_all_cpp_files(files, "./src/cli");
|
|
add_all_cpp_files(files, "./src/natives");
|
|
add_all_cpp_files(files, "./src/repl");
|
|
add_all_cpp_files(files, "./src/util");
|
|
foreach(var p; file.find_all_files_with_extension("./doc","md")) {
|
|
append(files, "./doc/"~p);
|
|
}
|
|
|
|
var source = [];
|
|
foreach(var f; files) {
|
|
append(source, io.readfile(f));
|
|
}
|
|
|
|
var byte = 0;
|
|
var total = size(files);
|
|
var timestamp = maketimestamp();
|
|
timestamp.stamp();
|
|
var bar = process_bar.high_resolution_bar(40);
|
|
forindex(var i; files) {
|
|
var f = source[i];
|
|
var res = md5(f);
|
|
byte += size(f);
|
|
if (cmp(res, md5_self.md5(f))) {
|
|
die("error: "~files[i]);
|
|
}
|
|
print(
|
|
"\e[1000D ", bar.bar((i+1)/total),
|
|
" (", i+1, "/", total, ")\t", res,
|
|
" byte: ", int(byte/1024), "k",
|
|
" time: ", timestamp.elapsedMSec()
|
|
);
|
|
}
|
|
print("\n");
|
|
}
|
|
|
|
var randomchecksum = func() {
|
|
for(var i = 0; i<2048; i += 256) {
|
|
compare(i, i+256);
|
|
}
|
|
}
|
|
|
|
runtime.windows.set_utf8_output();
|
|
filechecksum();
|
|
randomchecksum(); |