Вопросы по теме '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 просмотров
schedule
03.04.2023
Как выбрать значение в диапазоне с помощью 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 просмотров
schedule
09.12.2022
Как быстро проверить все возможные случаи для типа, который является как 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 просмотров
schedule
07.12.2023