Closed audriu closed 5 years ago
I have such data structure:
{:contexts ({:importer.datamodel/global-id "01b4e69f86e5dd1d816e91da27edc08e", :importer.datamodel/type "province", :name "a1", :importer.datamodel/part-of "8cda1baed04b668a167d4ca28e3cef36"} {:importer.datamodel/global-id "8cda1baed04b668a167d4ca28e3cef36", :importer.datamodel/type "country", :name "AAA"} {:importer.datamodel/global-id "c78e5478e19f2d7c1b02088e53e8d8a4", :importer.datamodel/type "location", :importer.datamodel/center ["36." "2."], :importer.datamodel/part-of "01b4e69f86e5dd1d816e91da27edc08e"} {:importer.datamodel/global-id "88844f94f79c75acfcb957bb41386149", :importer.datamodel/type "organisation", :name "C"} {:importer.datamodel/global-id "102e96468e5d13058ab85c734aa4a949", :importer.datamodel/type "organisation", :name "A"}), :datasources ({:importer.datamodel/global-id "Source;ACLED", :name "ACLED", :url "https://www.acleddata.com"}), :iois ({:importer.datamodel/global-id "item-set;ACLED", :importer.datamodel/type "event", :datasource "Source;ACLED", :features ({:importer.datamodel/global-id "c74257292f584502f9be02c98829d9fda532a492e7dd41e06c31bbccc76a7ba0", :date "1997-01-04", :fulltext {:importer.datamodel/global-id "df5c7d6d075df3a7719ebdd39c6d4c7f", :text "bla"}, :location-meanings ({:importer.datamodel/global-id "e5611219971164a15f06e07228fb7b51", :location "8cda1baed04b668a167d4ca28e3cef36", :contexts (), :importer.datamodel/type "position"} {:importer.datamodel/global-id "af36461d27ec1d8d28fd7f4a70ab7ce2", :location "c78e5478e19f2d7c1b02088e53e8d8a4", :contexts (), :importer.datamodel/type "position"}), :interaction-name "Violence", :importer.datamodel/type "description", :has-contexts ({:context "102e96468e5d13058ab85c734aa4a949", :context-association-type "actor", :context-association-name "actor-1", :priority "none"} {:context "88844f94f79c75acfcb957bb41386149", :context-association-type "actor", :context-association-name "actor-2", :priority "none"}), :facts ({:importer.datamodel/global-id "c46802ce6dcf33ca02ce113ffd9a855e", :importer.datamodel/type "integer", :name "fatalities", :value "16"}), :attributes ({:name "description", :importer.datamodel/type "string", :value "Violence"})}), :attributes (), :ioi-slice "per-item"})}
and I am running this code (sp/pprint-specs (sp/infer-specs data :importer.datamodel/data) 'data 's)
(sp/pprint-specs (sp/infer-specs data :importer.datamodel/data) 'data 's)
which generates me this spec
(spec/def :importer.datamodel/data (clojure.spec.alpha/coll-of (clojure.spec.alpha/or :collection (clojure.spec.alpha/coll-of (clojure.spec.alpha/keys :req [:importer.datamodel/global-id] :opt [:importer.datamodel/center :importer.datamodel/part-of :importer.datamodel/type] :opt-un [:importer.datamodel/attributes :importer.datamodel/datasource :importer.datamodel/features :importer.datamodel/ioi-slice :importer.datamodel/name :importer.datamodel/url])) :simple clojure.core/keyword?)))
But it looks like this one is not full and impossible to exercise. how to make it generate everything recursively?
I have such data structure:
and I am running this code
(sp/pprint-specs (sp/infer-specs data :importer.datamodel/data) 'data 's)
which generates me this spec
But it looks like this one is not full and impossible to exercise. how to make it generate everything recursively?