peer-at-code-parser-java/test/GlobalCover.java
2023-07-26 10:42:55 +02:00

69 lines
2.2 KiB
Java

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;
import be.jeffcheasey88.peeratcode.parser.Parser;
import be.jeffcheasey88.peeratcode.parser.TokenValidator;
import be.jeffcheasey88.peeratcode.parser.java.JavaElement;
import be.jeffcheasey88.peeratcode.parser.java.JavaFile;
import be.jeffcheasey88.peeratcode.parser.java.JavaParser;
class GlobalCover {
public static void main(String[] args) throws Exception {
new GlobalCover().workspace();
}
void workspace() throws Exception{
List<File> files = files(new File("C:\\Users\\jeffc\\eclipse-workspace"));
long validated = 0;
long tokens = 0;
int count = 0;
boolean hasWriten = false;
long time = System.currentTimeMillis();
for(File file : files){
if(file.getName().endsWith(".java")){
BufferedReader reader = new BufferedReader(new FileReader(file));
Parser<JavaElement> parser = new JavaParser();
parser.parse(reader, new JavaFile());
reader.close();
if((!hasWriten) && TokenValidator.MAX_VALIDATE < TokenValidator.TOKENS){
parser.build(new BufferedWriter(new FileWriter(new File("/home/ParserV2.txt"))));
hasWriten = true;
}
validated += TokenValidator.MAX_VALIDATE;
tokens += TokenValidator.TOKENS;
System.out.println(file+" "+validated+" / "+tokens);
TokenValidator.MAX_VALIDATE = 0;
TokenValidator.TOKENS = 0;
count++;
}
}
time = ((System.currentTimeMillis()-time)/1000);
String data = "{\"hash\": "+System.currentTimeMillis()+",\"time\": "+time+",\"percentage\": "+String.format("%.3f", ((validated/((double)tokens))*100.0)).replace(",", ".")+",\"validated\": "+validated+",\"files\": "+count+"}";
File file = new File("/home/tmp_.txt");
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write(data+"\n");
writer.flush();
writer.close();
}
private List<File> files(File dir){
List<File> result = new ArrayList<>();
if(dir.isDirectory()){
for(File file : dir.listFiles()) result.addAll(files(file));
}else result.add(dir);
return result;
}
}