diff --git a/project.clj b/project.clj index 2ddf0e3..a2a8693 100644 --- a/project.clj +++ b/project.clj @@ -6,7 +6,8 @@ :dependencies [[org.clojure/clojure "1.10.0"] [org.clojure/clojurescript "1.9.946"] [org.clojure/test.check "1.1.0"] - [net.clojars.schneau/psb2 "1.1.0"]] + [net.clojars.schneau/psb2 "1.1.0"] + [org.clojure/data.csv "1.0.1"]] :profiles {:profiling {:dependencies [[com.clojure-goes-fast/clj-async-profiler "0.5.1"]]}} :main ^:skip-aot propeller.core :repl-options {:init-ns propeller.core} diff --git a/src/propeller/problems/data_creation.cljc b/src/propeller/problems/data_creation.cljc new file mode 100644 index 0000000..aebb62a --- /dev/null +++ b/src/propeller/problems/data_creation.cljc @@ -0,0 +1,28 @@ +(ns propeller.problems.data-creation + (:require [psb2.core :as psb2] + [clojure.data.csv :as csv] + [clojure.java.io :as io])) + +(def problem "fizz-buzz") + +(defn generate-data [problem train-or-test] + (let [train-and-test-data (psb2/fetch-examples "data" problem 200 1000) + cleaned-data (map #(vector (:input1 %) (:output1 %)) ((keyword train-or-test) train-and-test-data))] + (with-open [writer (io/writer (str problem "-" train-or-test ".csv"))] + (csv/write-csv writer + (doall cleaned-data))))) + +(defn generate-data-for-problem [problem] + (map (partial generate-data problem) '["test" "train"])) + +(defn generate-data-for-all-problems [] + (map (partial generate-data-for-problem) '["fuel-cost" + "fizz-buzz" + "gcd" + "find-pair" + "small-or-large" + "scrabble-score" + "grade" + "count-odds"])) + +(generate-data-for-all-problems) \ No newline at end of file