Merge pull request #46 from NicMcPhee/fix-from-string-instruction

Fix from string instruction and several PSB2 problems
This commit is contained in:
Lee Spector 2022-03-04 19:34:18 -05:00 committed by GitHub
commit 0412f4015b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 26 additions and 57 deletions

View File

@ -78,19 +78,14 @@
(:step-limit argmap))
:string))
inputs)
parsed-outputs (map (fn [output]
(try (read-string output)
#?(:clj (catch Exception e 1000.0)
:cljs (catch js/Error. e 1000.0))))
outputs)
errors (map (fn [correct-output output]
(if (= output :no-stack-item)
10000
(metrics/levenshtein-distance correct-output output)))
correct-outputs
parsed-outputs)]
outputs)]
(assoc individual
:behaviors parsed-outputs
:behaviors outputs
:errors errors
:total-error #?(:clj (apply +' errors)
:cljs (apply + errors)))))

View File

@ -46,19 +46,14 @@
(:step-limit argmap))
:string))
inputs)
parsed-outputs (map (fn [output]
(try (read-string output)
#?(:clj (catch Exception e 1000.0)
:cljs (catch js/Error. e 1000.0))))
outputs)
errors (map (fn [correct-output output]
(if (= output :no-stack-item)
10000
(metrics/levenshtein-distance (str correct-output) (str output))))
(metrics/levenshtein-distance correct-output output)))
correct-outputs
parsed-outputs)]
outputs)]
(assoc individual
:behaviors parsed-outputs
:behaviors outputs
:errors errors
:total-error #?(:clj (apply +' errors)
:cljs (apply + errors)))))

View File

@ -47,19 +47,14 @@
(:step-limit argmap))
:string))
inputs)
parsed-outputs (map (fn [output]
(try (read-string output)
#?(:clj (catch Exception e 1000.0)
:cljs (catch js/Error. e 1000.0))))
outputs)
errors (map (fn [correct-output output]
(if (= output :no-stack-item)
10000
(metrics/levenshtein-distance (str correct-output) (str output))))
(metrics/levenshtein-distance correct-output output)))
correct-outputs
parsed-outputs)]
outputs)]
(assoc individual
:behaviors parsed-outputs
:behaviors outputs
:errors errors
:total-error #?(:clj (apply +' errors)
:cljs (apply + errors)))))

View File

@ -74,19 +74,14 @@
(:step-limit argmap))
:string))
inputs)
parsed-outputs (map (fn [output]
(try (read-string output)
#?(:clj (catch Exception e 1000.0)
:cljs (catch js/Error. e 1000.0))))
outputs)
errors (map (fn [correct-output output]
(if (= output :no-stack-item)
10000
(metrics/levenshtein-distance correct-output output)))
correct-outputs
parsed-outputs)]
outputs)]
(assoc individual
:behaviors parsed-outputs
:behaviors outputs
:errors errors
:total-error #?(:clj (apply +' errors)
:cljs (apply + errors)))))

View File

@ -46,19 +46,14 @@
(:step-limit argmap))
:string))
inputs)
parsed-outputs (map (fn [output]
(try (read-string output)
#?(:clj (catch Exception e 1000.0)
:cljs (catch js/Error. e 1000.0))))
outputs)
errors (map (fn [correct-output output]
(if (= output :no-stack-item)
10000
(metrics/levenshtein-distance (str correct-output) (str output))))
(metrics/levenshtein-distance correct-output output)))
correct-outputs
parsed-outputs)]
outputs)]
(assoc individual
:behaviors parsed-outputs
:behaviors outputs
:errors errors
:total-error #?(:clj (apply +' errors)
:cljs (apply + errors)))))

View File

@ -59,19 +59,14 @@
(:step-limit argmap))
:string))
inputs)
parsed-outputs (map (fn [output]
(try (read-string output)
#?(:clj (catch Exception e 1000.0)
:cljs (catch js/Error. e 1000.0))))
outputs)
errors (map (fn [correct-output output]
(if (= output :no-stack-item)
10000
(metrics/levenshtein-distance (str correct-output) (str output))))
(metrics/levenshtein-distance correct-output output)))
correct-outputs
parsed-outputs)]
outputs)]
(assoc individual
:behaviors parsed-outputs
:behaviors outputs
:errors errors
:total-error #?(:clj (apply +' errors)
:cljs (apply + errors)))))

View File

@ -50,19 +50,14 @@
(:step-limit argmap))
:string))
inputs)
parsed-outputs (map (fn [output]
(try (read-string output)
#?(:clj (catch Exception e 1000.0)
:cljs (catch js/Error. e 1000.0))))
outputs)
errors (map (fn [correct-output output]
(if (= output :no-stack-item)
10000
(metrics/levenshtein-distance (str correct-output) (str output))))
(metrics/levenshtein-distance correct-output output)))
correct-outputs
parsed-outputs)]
outputs)]
(assoc individual
:behaviors parsed-outputs
:behaviors outputs
:errors errors
:total-error #?(:clj (apply +' errors)
:cljs (apply + errors)))))

View File

@ -121,9 +121,13 @@
:name "_from_string"}
(fn [stack state]
(make-instruction state
#(try ((if (= stack :integer) int float) (read-string %))
#?(:clj (catch Exception e)
:cljs (catch js/Error. e)))
#(try (if (= stack :integer)
#?(:clj (Integer/parseInt %)
:cljs (js/parseInt %))
#?(:clj (Float/parseFloat %)
:cljs (js/parseFloat %)))
#?(:clj (catch Exception e :ignore-instruction)
:cljs (catch js/Error e :ignore-instruction)))
[:string]
stack)))