Вопросы по теме 'quickcheck'

Создание списка списков Int с помощью QuickCheck
Я работаю над Real World Haskell , одним из упражнений главы 4 является реализация foldr -ориентированного версия concat . Я подумал, что это будет отличным кандидатом для тестирования с помощью QuickCheck, поскольку существует уже существующая...
1812 просмотров
schedule 30.04.2024

Что нового в QuickCheck 2?
Каковы основные различия между QuickCheck 1 и QuickCheck 2? Глядя на документы Haddock, я вижу, что он разделен на несколько модулей, coarbitrary был заменен новым типом Fun и классом FunArbitrary (что мне кажется более понятным), и теперь...
2669 просмотров
schedule 24.04.2023

Как отобразить причину неудачного свойства теста с помощью быстрой проверки?
Как лучше всего отображать причины неудачной проверки свойства при проверке с помощью QuickCheck? Рассмотрим, например: prop a b = res /= [] where (res, reason) = checkCode a b Тогда сеанс может выглядеть так: > quickCheck...
2168 просмотров
schedule 11.02.2022

Какое место в пакете клики занимают экземпляры QuickCheck?
У меня есть пакет cabal , который экспортирует тип _ 1_ , который может быть полезен другим разработчикам. Я столкнулся с проблемой определения Arbitrary экземпляра для своего типа, и было бы стыдно не предлагать его другим разработчикам для...
888 просмотров
schedule 19.02.2022

Как легко сделать Data.List.Vector членом Arbitrary?
Я использую Data.List.Vector в своей программе, и теперь я хотел бы использовать для него quickCheck. Однако для этого нет экземпляра. Поскольку для [Double] уже есть произвольное значение, я подумал, что могу сделать что-то вроде instance...
323 просмотров
schedule 02.11.2022

Как использовать модификаторы с Quickcheck (в моем случае положительно)
У меня есть функция rev , которая возвращает некоторое значение для типа, принадлежащего к трем классам типов: rev :: (Integral a, Show a, Read a) => a -> a rev = read . reverse . show Я хотел бы проверить некоторые свойства об этом с...
1593 просмотров
schedule 27.02.2022

Использование собственного генератора и произвольного экземпляра в QuickCheck
Вот простая функция. Он принимает вход Int и возвращает (возможно, пустой) список (Int, Int) пар, где вход Int - это сумма элементов в кубе любой из пар. cubeDecomposition :: Int -> [(Int, Int)] cubeDecomposition n = [(x, y) | x <-...
2528 просмотров
schedule 21.04.2022

Изабель: аксиоматизация и быстрая проверка vs autosolve_direct
Снова небольшой пример с неожиданными результатами. theory Scratch imports Main begin datatype test = aa | bb | plus test test axiomatization where testIdemo : "x == plus x x" lemma test1 : "y == plus y y" Теперь я получаю следующие...
221 просмотров
schedule 09.10.2023

Как создать Quickcheck Arbitrary структуры, содержащей ссылку?
В документации по быстрой проверке Rust отмечается, что для любого типа реализации Arbitrary Они также должны быть доступными для отправки и статическими, поскольку каждый тест запускается в своем собственном потоке с использованием...
768 просмотров
schedule 26.11.2022

Как QuickCheck может проверить все свойства для каждого образца
... вместо создания 100 новых случайных выборок для каждого свойства? Мой набор тестов содержит описанный здесь метод TemplateHaskell [1] для тестирования всех функций с именем prop_ *. Запуск тестовой программы распечатывает === prop_foo from...
582 просмотров
schedule 03.05.2024

Haskell GHC: не удалось загрузить интерфейс для «Test.QuickCheck»
Поэтому я должен включить библиотеку 'Test.QuickCheck' для некоторых тестов по предмету. Хотя я использую его целый год, недавно я переустановил GHC/GHCi , и эта библиотека не загружается . Остальные функции работают по плану. В...
3442 просмотров
schedule 29.08.2022

Создайте генератор элементов с бесконечным списком
Я играю с QuickCheck и наткнулся на какое-то странное поведение sample $ elements [1..5] однако работает как положено sample $ elements [1..] зависает в ghci, даже при использовании конечного типа, такого как Int sample $...
245 просмотров
schedule 13.06.2024

Пользовательский тестируемый экземпляр с QuickCheck
У меня есть настраиваемая монада результатов / ошибок, ничего особенного: import Control.Monad (liftM, ap) data MyResult a = Error String | Success a instance Functor MyResult where fmap = liftM instance Applicative MyResult where pure...
143 просмотров
schedule 10.11.2022

Тест Monadic QuickCheck не работает для произвольного массива Repa
Я пытаюсь написать тесты для произвольных массивов Repa в Haskell. Почему-то следующий фрагмент: import Test.QuickCheck import Test.QuickCheck.Monadic import Data.Array.Repa (Array, DIM2) prop_id :: Array U DIM2 Double -> Property prop_id...
64 просмотров
schedule 12.12.2022

Как создать произвольную функцию с двумя аргументами с помощью QuickCheck?
Я пытаюсь проверить свою реализацию zipWith с помощью QuickCheck. Моя реализация, myZipWith , я хотел бы протестировать QuickCheck, сравнив ее со стандартной функцией. Что-то типа: main = do quickCheck (prop_myZipWith :: (Int -> Int...
446 просмотров
schedule 13.03.2022

Как использовать QuickCheck в тестах Hspec?
Я создаю начальную кодовую базу для своего проекта на Haskell с помощью cabal init У меня есть несколько тестов, написанных с помощью Hspec. На cabal test он компилирует и запускает эти тесты, как и ожидалось, и выдает сообщение о...
570 просмотров

Как выбрать значение в диапазоне с помощью QuickCheck?
У меня есть следующий код, который я использую для создания задачи на следующем сайте: codewars describe "Random cases" $ do it "It should handle random test cases" $ property $ prop_check where prop_check (Positive x)...
748 просмотров
schedule 22.05.2023

Хорошо это или плохо, что набор тестов для быстрой проверки соответствует реализации?
Я пытаюсь начать работу с Haskell QuickCheck, и хотя я знаком с концепциями, лежащими в основе методологии тестирования, я впервые пытаюсь использовать его в проекте, который выходит за рамки тестирования таких вещей, как reverse . reverse == id и...
339 просмотров

Как быстро проверить все возможные случаи для типа, который является как Enum, так и Bounded?
У меня есть свойство quickCheck , которое включает создание элементы для типа суммы, который имеет только два элемента. Очевидно, что количество тестов по умолчанию, 100, слишком много для этого случая, поэтому я использовал withMaxSuccess ,...
95 просмотров
schedule 24.04.2022

Haskell: понимание QuickCheck с функцией высшего порядка
У меня есть функция foo : foo :: [a] -> (a -> b) -> [b] foo [] f = [] foo (x:xs) f = foo xs f И следующие два свойства, которым он должен удовлетворять: prop_1 :: [Int] -> Bool prop_1 xs = foo xs id == xs prop_2 :: [Int]...
125 просмотров