From a3ad5e9c97bbae67998f9da99288341e4378f5ec Mon Sep 17 00:00:00 2001 From: Lucas Garron Date: Sat, 7 Oct 2023 22:10:02 -0700 Subject: [PATCH] =?UTF-8?q?IT=20WORKS!=20=F0=9F=A4=A9=F0=9F=98=AE=E2=80=8D?= =?UTF-8?q?=F0=9F=92=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 4 +++ script/test-dist-wasm.js | 2 +- src/rs/search/search.rs | 60 +++++++++++++++++++--------------------- src/rs/wasm/wasm_api.rs | 2 +- 4 files changed, 34 insertions(+), 34 deletions(-) diff --git a/Makefile b/Makefile index 627df3ad..544f2462 100644 --- a/Makefile +++ b/Makefile @@ -226,3 +226,7 @@ build-rust-wasm: cat dist/wasm/package.json | jq ".type = \"module\"" > /tmp/twsearch.package.json.temp mv /tmp/twsearch.package.json.temp dist/wasm/package.json bun script/node-esm-compat.ts + +.PHONY: test-rust-wasm +test-rust-wasm: + node "script/test-dist-wasm.js" diff --git a/script/test-dist-wasm.js b/script/test-dist-wasm.js index ac88b115..299e9726 100644 --- a/script/test-dist-wasm.js +++ b/script/test-dist-wasm.js @@ -12,4 +12,4 @@ await init(); await internal_init(); console.log("Initialized!"); -console.log("Inverted alg test:", search_test()); +console.log("Found alg:", search_test()); diff --git a/src/rs/search/search.rs b/src/rs/search/search.rs index fe42a3b3..d1085d76 100644 --- a/src/rs/search/search.rs +++ b/src/rs/search/search.rs @@ -1,9 +1,6 @@ -use std::{ - sync::{ - mpsc::{channel, Receiver, Sender}, - Arc, - }, - thread::spawn, +use std::sync::{ + mpsc::{channel, Receiver, Sender}, + Arc, }; use cubing::alg::{Alg, AlgNode, Move}; @@ -188,35 +185,34 @@ impl IDFSearch { }; let search_pattern = search_pattern.clone(); - spawn(move || { - for remaining_depth in - individual_search_options.get_min_depth()..individual_search_options.get_max_depth() - { - self.api_data.search_logger.write_info("----------------"); - self.prune_table.extend_for_search_depth( - remaining_depth, - individual_search_data - .recursive_work_tracker - .estimate_next_level_num_recursive_calls(), - ); - individual_search_data - .recursive_work_tracker - .start_depth(remaining_depth, Some("Starting search…")); - let recursion_result = self.recurse( - &mut individual_search_data, - &search_pattern, - CANONICAL_FSM_START_STATE, - remaining_depth, - SolutionMoves(None), - ); + + for remaining_depth in + individual_search_options.get_min_depth()..individual_search_options.get_max_depth() + { + self.api_data.search_logger.write_info("----------------"); + self.prune_table.extend_for_search_depth( + remaining_depth, individual_search_data .recursive_work_tracker - .finish_latest_depth(); - if let SearchRecursionResult::DoneSearching() = recursion_result { - return; - } + .estimate_next_level_num_recursive_calls(), + ); + individual_search_data + .recursive_work_tracker + .start_depth(remaining_depth, Some("Starting search…")); + let recursion_result = self.recurse( + &mut individual_search_data, + &search_pattern, + CANONICAL_FSM_START_STATE, + remaining_depth, + SolutionMoves(None), + ); + individual_search_data + .recursive_work_tracker + .finish_latest_depth(); + if let SearchRecursionResult::DoneSearching() = recursion_result { + break; } - }); + } search_solutions } diff --git a/src/rs/wasm/wasm_api.rs b/src/rs/wasm/wasm_api.rs index 9d1b66ca..59d211d4 100644 --- a/src/rs/wasm/wasm_api.rs +++ b/src/rs/wasm/wasm_api.rs @@ -37,7 +37,7 @@ pub fn search_test() -> String { let target_pattern = packed_kpuzzle.default_pattern(); let search_pattern = target_pattern.apply_transformation( &packed_kpuzzle - .transformation_from_alg(&"L' U L F U2 R".parse::().unwrap()) + .transformation_from_alg(&"L' U' L F U2 R".parse::().unwrap()) .expect("Could not create search pattern."), );