2023-06-17 14:30:49 +02:00
|
|
|
function Panel_Test() : PanelContent() constructor {
|
|
|
|
w = ui(480);
|
2024-03-27 14:18:39 +01:00
|
|
|
h = ui(160);
|
2024-11-30 06:50:20 +01:00
|
|
|
title = "Tester";
|
|
|
|
auto_pin = true;
|
2023-06-17 14:30:49 +02:00
|
|
|
|
2024-09-10 04:16:50 +02:00
|
|
|
test_dir = "D:/Project/MakhamDev/LTS-PixelComposer/TEST";
|
2024-03-27 14:18:39 +01:00
|
|
|
tb_test_dir = new textBox(TEXTBOX_INPUT.text, function(txt) { test_dir = txt; });
|
|
|
|
tb_index = new textBox(TEXTBOX_INPUT.number, function(txt) { start_index = txt; });
|
|
|
|
tb_amount = new textBox(TEXTBOX_INPUT.number, function(txt) { test_amount = txt; });
|
2023-06-17 14:30:49 +02:00
|
|
|
|
2023-11-03 14:43:28 +01:00
|
|
|
testing = false;
|
|
|
|
test_files = [];
|
|
|
|
start_index = 0;
|
2024-03-27 14:18:39 +01:00
|
|
|
test_amount = 100;
|
2023-11-03 14:43:28 +01:00
|
|
|
test_index = start_index;
|
2023-06-17 14:30:49 +02:00
|
|
|
|
2023-06-17 18:59:20 +02:00
|
|
|
test_button_surface = surface_create(1, 1);
|
|
|
|
|
|
|
|
function scanDir(dir) {
|
2024-09-10 04:16:50 +02:00
|
|
|
var f = file_find_first(dir + "/*", fa_none);
|
2023-06-17 18:59:20 +02:00
|
|
|
while(f != "") {
|
2024-09-10 04:16:50 +02:00
|
|
|
var path = dir + "/" + f;
|
2024-06-03 09:34:59 +02:00
|
|
|
if(filename_ext_raw(path) == "pxc")
|
2023-06-17 18:59:20 +02:00
|
|
|
array_push(test_files, path);
|
|
|
|
f = file_find_next();
|
|
|
|
}
|
|
|
|
file_find_close();
|
|
|
|
|
2024-09-10 04:16:50 +02:00
|
|
|
var f = file_find_first(dir + "/*", fa_directory);
|
2023-06-17 18:59:20 +02:00
|
|
|
var _dir = [];
|
|
|
|
|
|
|
|
while(f != "") {
|
2024-09-10 04:16:50 +02:00
|
|
|
var path = dir + "/" + f;
|
2023-06-17 18:59:20 +02:00
|
|
|
array_push(_dir, path);
|
|
|
|
f = file_find_next();
|
|
|
|
}
|
|
|
|
file_find_close();
|
|
|
|
|
2023-07-25 20:12:40 +02:00
|
|
|
for( var i = 0, n = array_length(_dir); i < n; i++ )
|
2023-06-17 18:59:20 +02:00
|
|
|
scanDir(_dir[i]);
|
|
|
|
}
|
|
|
|
|
2023-06-17 14:30:49 +02:00
|
|
|
function startTesting() {
|
|
|
|
if(testing) return;
|
|
|
|
|
|
|
|
testing = true;
|
2023-11-03 14:43:28 +01:00
|
|
|
test_index = start_index;
|
2023-06-17 14:30:49 +02:00
|
|
|
|
|
|
|
test_files = [];
|
2023-06-17 18:59:20 +02:00
|
|
|
scanDir(test_dir);
|
2023-06-17 14:30:49 +02:00
|
|
|
|
2024-03-27 14:18:39 +01:00
|
|
|
__start_time = get_timer();
|
|
|
|
|
|
|
|
for( var i = start_index, n = min(start_index + test_amount, array_length(test_files)); i < n; i++ ) {
|
2023-11-03 14:43:28 +01:00
|
|
|
run_in(1 + (i - start_index) * 3, function(i) {
|
2023-10-18 14:58:55 +02:00
|
|
|
try {
|
2023-11-03 14:43:28 +01:00
|
|
|
show_debug_message($"TESTING {i}/{array_length(test_files)}: {test_files[i]}");
|
2023-10-18 14:58:55 +02:00
|
|
|
TEST_PATH(test_files[i]);
|
|
|
|
test_index = i;
|
2024-03-27 14:18:39 +01:00
|
|
|
show_debug_message($" > Test complete : {(get_timer() - __start_time) / 1_000_000} s");
|
2023-10-18 14:58:55 +02:00
|
|
|
} catch(e) {
|
2023-11-03 14:43:28 +01:00
|
|
|
show_debug_message($" > Test failed");
|
2023-10-18 14:58:55 +02:00
|
|
|
exception_print(e);
|
|
|
|
}
|
2023-06-17 18:59:20 +02:00
|
|
|
}, [i]);
|
2023-06-17 14:30:49 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function drawContent(panel) {
|
|
|
|
draw_clear_alpha(COLORS.panel_bg_clear, 0);
|
|
|
|
|
|
|
|
var yy = 8;
|
|
|
|
var hh = TEXTBOX_HEIGHT;
|
|
|
|
|
2024-03-27 14:18:39 +01:00
|
|
|
tb_test_dir.setFocusHover(pFOCUS, pHOVER);
|
|
|
|
tb_index.setFocusHover(pFOCUS, pHOVER);
|
|
|
|
tb_amount.setFocusHover(pFOCUS, pHOVER);
|
|
|
|
|
2023-06-17 14:30:49 +02:00
|
|
|
draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text);
|
|
|
|
draw_text(8, yy + hh / 2, "Directory");
|
|
|
|
|
|
|
|
tb_test_dir.draw(128, yy, w - 8 - 128, hh, test_dir, [ mx, my ]);
|
|
|
|
yy += hh + 8;
|
2024-03-27 14:18:39 +01:00
|
|
|
|
|
|
|
draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text);
|
|
|
|
draw_text(8, yy + hh / 2, "Start");
|
|
|
|
|
|
|
|
tb_index.draw(128, yy, w - 8 - 128, hh, start_index, [ mx, my ]);
|
|
|
|
yy += hh + 8;
|
|
|
|
|
|
|
|
draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text);
|
|
|
|
draw_text(8, yy + hh / 2, "Amount");
|
|
|
|
|
|
|
|
tb_amount.draw(128, yy, w - 8 - 128, hh, test_amount, [ mx, my ]);
|
|
|
|
yy += hh + 8;
|
2023-06-17 14:30:49 +02:00
|
|
|
|
|
|
|
if(testing) {
|
2023-06-17 18:59:20 +02:00
|
|
|
var _w = (w - 16) * test_index / array_length(test_files);
|
2023-06-17 14:30:49 +02:00
|
|
|
draw_sprite_stretched(THEME.progress_bar, 0, 8, yy, w - 16, hh);
|
2023-06-17 18:59:20 +02:00
|
|
|
draw_sprite_stretched(THEME.progress_bar, 1, 8, yy, _w, hh);
|
|
|
|
|
|
|
|
draw_set_text(f_p0, fa_center, fa_center, COLORS._main_text);
|
|
|
|
draw_text(w / 2, yy + hh / 2, $"Testing {test_index + 1}/{array_length(test_files)}");
|
|
|
|
|
|
|
|
test_button_surface = surface_verify(test_button_surface, w - 16, hh);
|
|
|
|
surface_set_target(test_button_surface);
|
|
|
|
DRAW_CLEAR
|
|
|
|
draw_set_text(f_p0, fa_center, fa_center, COLORS._main_text_on_accent);
|
|
|
|
draw_text((w - 16) / 2, hh / 2, $"Testing {test_index + 1}/{array_length(test_files)}");
|
|
|
|
surface_reset_target();
|
|
|
|
draw_surface_part(test_button_surface, 0, 0, _w, hh, 8, yy);
|
2023-06-17 14:30:49 +02:00
|
|
|
|
2023-06-17 18:59:20 +02:00
|
|
|
if(test_index >= array_length(test_files) - 1)
|
2023-06-17 14:30:49 +02:00
|
|
|
testing = false;
|
|
|
|
} else {
|
2024-03-31 05:36:11 +02:00
|
|
|
if(buttonInstant(THEME.button_def, 8, yy, w - 16, hh, [ mx, my ], pFOCUS, pHOVER) == 2)
|
2023-06-17 14:30:49 +02:00
|
|
|
startTesting();
|
|
|
|
draw_set_text(f_p0, fa_center, fa_center, COLORS._main_text);
|
|
|
|
draw_text(w / 2, yy + hh / 2, "Start test");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|