Описание тега clojure.spec
NoneClojure.spec is a Clojure language feature introduced in Clojure 1.9 for defining predicative and structural data and function definitions.
1
ответ
Интегрировать спецификацию clojure
Этот вопрос может быть очень простым, но я плохо знаком с clojure и не могу понять, как поступить с этим. abc.clj: (ns abc) (defn foo [i] (+ i 20)) Я пишу спецификации clojure для этой функции в другом файле abc_test.clj. (ns abc_test (:require [clo…
01 мар '17 в 12:54
2
ответа
Что такое генеративное тестирование в Clojure?
Я наткнулся Generative Testing in Clojure with spec Понятие и хотел бы узнать об этом. Также было бы полезно привести несколько примеров.
11 апр '17 в 14:14
2
ответа
Пользовательский генератор clojure.spec для объектов Java
Я только что видел одно из выступлений Рича о clojure.spec и очень хочу попробовать его в своем проекте. Я пишу серию инструментов для анализа кода C с использованием библиотеки eclipse CDT, и я хотел бы указать, что мои функции принимают и испускаю…
16 дек '16 в 03:10
1
ответ
Спецификация Clojure: как проверить ту или иную карту
У меня есть этот код Clojure, чтобы определить мою схему для объектов ответа, которые могут быть {:message {:text "Hello"} :delay 3000} или же {:action "typing_on" :duration 5000} reply карта может иметь :message или же :action и соответственно допо…
06 июл '17 в 16:36
2
ответа
Моделирование Clojure доменов: спецификация против протоколов
Этот вопрос стал действительно длинным; Я приветствую комментарии, предлагающие лучшие форумы по этому вопросу. Я моделирую роящееся поведение птиц. Чтобы помочь мне организовать свои мысли, я создал три протокола, представляющих основные концепции …
08 ноя '18 в 00:36
1
ответ
Сравните между двумя значениями спецификации, Clojure.spec
Я определил спецификации как - (s/def ::start integer?) (s/def ::end integer?) (s/def ::collection (s/keys :req-un [::start ::end])) Работает нормально как (s/valid? ::collection {:start 9 :end 13}) Но теперь я также должен проверить это start должн…
10 фев '18 в 07:22
1
ответ
Чем спецификация Clojure отличается от библиотек тестирования на основе свойств, таких как Haskell QuickCheck?
Другие языки имеют библиотеки тестирования на основе свойств, например, Haskell QuickCheck. Чем спецификация Clojure отличается от таких библиотек? Или это просто среда тестирования на основе свойств для Clojure?
18 окт '17 в 21:36
2
ответа
Ключи */ ключи со встроенными значениями
Я хочу написать спецификацию с keys / keys* но я был в состоянии указать спецификации значений, что не поддерживается проектом, и я понял причину этого. Однако иногда вы хотите (или просто хотите использовать обычную или стороннюю) связь между ключа…
20 дек '16 в 09:59
1
ответ
Clojure spec - наименование ключевых слов сущности
Считается ли плохой практикой использование ключевых слов с определенным пространством имен с несуществующими пространствами имен для определения спецификаций? Я хотел бы, чтобы карты сущностей определялись в общем пространстве имен домена... поэтом…
13 ноя '18 в 10:58
1
ответ
Clojure spec и конструкторы записей
Если бы я определил следующую запись: (defrecord Person [name id]) и следующее: (s/def ::name string?) (s/def ::id int?) (s/def ::person (s/keys :req-un [::name ::id])) Как я могу гарантировать, что вы не можете создать Person, который не соответств…
22 июл '16 в 03:47
1
ответ
Проверка анонимных функций, переданных в мою функцию во время выполнения, со спецификацией clojure
Скажи у меня есть функция a это берет функцию (fn) в качестве аргумента: (defn a [f] ....), Для того, чтобы дать приятное сообщение об ошибке вызывающей стороне, я бы во время выполнения проверить fn аргумент. Возможно ли это, и как мне поступить? М…
12 авг '18 в 09:28
2
ответа
Число? не может быть использован в спецификации
В Clojure 1.9.0-alpha13 я могу определить предикат спецификации, используя spec/and а также integer? но нет and а также number?, кажется. Это озадачивает. Также удивительно, что при определении предиката нет ошибки, а только когда я пытаюсь определи…
27 окт '16 в 18:54
1
ответ
Как создать одно и то же значение для двух разных путей в спецификации?
Я пытаюсь научиться пользоваться overrides с s/gen, у меня есть ::parent карта, которая содержит ::child карта. И родитель, и ребенок имеют общие ключи. Требуется, чтобы ключи имели одинаковое значение между родителем и потомком, например {:a 1 :b 2…
30 сен '18 в 02:12
1
ответ
Как убрать лишние ключи с внутренней карты используя spec-tools
Я пытаюсь использовать clojure.spec и https://github.com/metosin/spec-tools для проверки и согласования данных в моем приложении. После прочтения документации по спец-инструментам мне не было ясно, как мне обернуть свои спецификации, используя spec-…
14 дек '17 в 22:32
2
ответа
Как принимать только заказанные коллекции в спецификации
Как я могу создать спецификацию, которая принимает только последовательные (т.е. сохраняющие порядок) коллекции? Например cljs.user=> (s/def ::path (s/+ number?)) :cljs.user/path cljs.user=> (s/explain ::path []) val: () fails spec: :cljs.user…
13 дек '18 в 11:48
1
ответ
Clojure spec - генератор с одной ветвью
Можно ли переопределить генератор спецификаций по умолчанию, чтобы данные всегда генерировались только для одной ветви s/or составная спецификация? (s/def ::x (s/or :x-a nat-int? :x-b string?)) (gen/sample (s/gen ::x)) ;; generate strings only
27 ноя '18 в 00:31
1
ответ
Как мне сделать собственный генератор clojure.spec?
Я пытаюсь специфицировать следующую структуру данных под названием Connection: {:id "some string" :channel "instance of org.httpkit.server.AsyncChannel" } Вот моя спецификация: (defn make-channel [] (proxy [AsyncChannel] [nil nil] (toString [] "mock…
05 окт '17 в 18:47
2
ответа
Clojure Spec не проверяет данные должным образом
Я очень смущен Clojure Spec. Когда я запускаю в repl, введя: (require '[clojure.spec.alpha :as s]) И затем добавьте: (s/valid? even? 10) Я получаю правду. И когда я бегу: (s/valid? even? 11) //Ложь. Хорошо, так что работает. Затем, когда мне требует…
15 дек '17 в 23:29
0
ответов
Как мне сгенерировать сгенерированные значения как отдельные аргументы в clojure.spec?
У меня есть следующий код, я пытаюсь использовать path-and-subpath генератор для создания значений для (s/fdef conj-set ...), (def path (s/coll-of (s/with-gen string? #(s/gen #{"a" "b" "c" "d"})) :min-count 1 :kind vector? :into [])) (s/def ::path (…
12 фев '17 в 08:21
1
ответ
Использование spec/merge с spec/multi-spec
Могу ли я использовать s/merge с s/multi-spec? Например (require '[clojure.spec :as s]) (s/def :field/common (s/keys :req-un [:field/type :field/name] :opt-un [:field/default])) (s/def :field/max-length int?) (defmulti field-type :type) (defmethod f…
08 фев '19 в 19:39