Публикации по теме 'quickcheck'


Разбираем «вернуть true, чтобы победить» с помощью свойств
Идея упражнений return true to win состоит в том, чтобы создать значение, подобное тому, которое данная функция возвращает true . Значения могут быть любого типа, но также могут быть ограничены объектами, массивами, функциями в зависимости от постановки задачи. В этой статье основное внимание уделяется применению тестирования на основе свойств для решения таких проблем. Примеры таких головоломок доступны по ссылке: https://alf.nu/ReturnTrue Доказательство концепции на основе..

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

Тестирование операций ввода-вывода с помощью Monadic QuickCheck
Может ли кто-нибудь дать мне краткий пример тестирования действий ввода-вывода с использованием Monadic QuickCheck?
6185 просмотров
schedule 26.05.2022

Является членом скрытого пакетаQuickCheck-1.2.0.0, Как загрузить файл hs
установлен QuickCheck, я снова устанавливаю кабалу, устанавливаю QuickCheck-1.2.0.0 и загрузить снова и имеет ошибку Не удалось найти модуль Test.QuickCheck.Batch': It is a member of the hidden package QuickCheck-1.2.0.0'. Это скрытый...
2356 просмотров
schedule 04.02.2023

Как мы можем применить функцию без vararg к va_list?
Предыстория Я портирую платформу модульного тестирования QuickCheck на C (см. Рабочий код на странице GitHub ). Синтаксис будет таким: for_all(property, gen1, gen2, gen3 ...); Где property - функция для тестирования, например bool...
460 просмотров
schedule 17.07.2022

Избегайте дублирования свойств QuickCheck
Я начинаю изучать Haskell, решая 99 задач Haskell. http://www.haskell.org/haskellwiki/H-99:_Ninety-Nine_Haskell_Problems Я бы хотел написать тесты для каждой программы / функции с помощью quickcheck. У меня такой код: import Test.QuickCheck...
264 просмотров
schedule 29.03.2023

Состояние выхода QuickCheck при сбоях и интеграция клики
Я пытаюсь понять, как интегрировать некоторые быстрые тесты с кликой. Этот суть предполагает, что функция quickCheck возвращает ненулевой статус в случае сбоя, но я не получаю такого поведения , поэтому использование типа набора тестов...
874 просмотров
schedule 21.06.2022

Как я могу запретить QuickCheck перехватывать все исключения?
Библиотека QuickCheck, по-видимому, перехватывает все исключения, возникающие при тестировании свойства. В частности, такое поведение не позволяет мне установить ограничение по времени для всего вычисления QuickCheck. Например: module...
406 просмотров
schedule 30.04.2023

Как я могу протестировать функцию более высокого порядка с помощью QuickCheck?
У меня есть функция высшего порядка, которую я хочу протестировать, и одно из свойств, которые я хочу проверить, - это то, что она делает с переданными функциями. В целях иллюстрации вот надуманный пример: gen :: a -> ([a] -> [a]) -> ([a]...
1366 просмотров
schedule 10.06.2023

Тестирование парсеров Parsec путем генерации входных данных с помощью QuickCheck
Я хотел бы написать тесты для набора парсеров Parsec. Вот простой пример парсера, который я хочу протестировать с помощью QuickCheck: identifier = do c <- letter cs <- many (alphaNum <|> oneOf identSymbols) skipSpaces return $...
1648 просмотров
schedule 10.04.2022

Идиоматический способ уменьшить запись в QuickCheck
Предположим, у меня есть тип записи: data Foo = Foo {x, y, z :: Integer} Аккуратный способ написания произвольного экземпляра использует Control.Applicative следующим образом: instance Arbitrary Foo where arbitrary = Foo <$>...
849 просмотров
schedule 10.07.2023

Haskell quickcheck - как сгенерировать только строки для печати
У меня есть набор простых демонстрационных программ, которые кодируют / декодируют строки, и я хочу сгенерировать для них несколько тестов quickCheck , но ограничить тесты только печатаемыми строками. Использование защиты слишком медленное и дает...
3873 просмотров
schedule 12.04.2023

Haskell: свойство QuickCheck не проходит тесты с использованием последствий
У меня есть следующее свойство, которое я хочу протестировать с помощью quickcheck: prop_zip xs ys = length xs == length ys ==> unzip (zip xs ys) == (xs,ys) Несмотря на то, что кажется логически правильным согласно определению zip и...
666 просмотров

Haskell, ввод-вывод, монады, быстрая проверка
Новичок в Haskell здесь. У меня есть функция и набор свойств для ее проверки, которые я написал с помощью quickcheck. Свойства работают, когда я запускаю их по отдельности в интерпретаторе, и функция работает нормально. Однако ручная быстрая...
728 просмотров
schedule 19.02.2022

QuickCheck Gen не является монадой
Я иногда видел, как люди говорили, что тип Gen в QuickCheck не подчиняется законам монад, хотя я не видел особых объяснений этому. Теперь QuickCheck 2.7 Test.QuickCheck Модуль .Gen.Unsafe говорит, что Gen является только "морально" монадой, но...
771 просмотров
schedule 28.06.2023

Быстрая проверка неприятной сторонней функции в Haskell (GHC)
Я хотел бы использовать библиотеку быстрой проверки Haskell для тестирования кода C. Кажется, самый простой способ сделать foreign import и написать свойство поверх полученной функции haskell. Проблема в том, что если код C вызывает segfault или...
226 просмотров
schedule 16.10.2022

fscheck генерирует строку с размером между min и max
Я пытаюсь написать генератор FsCheck, который генерирует строки с длиной в заданном интервале. Моя попытка заключается в следующем: let genString minLength maxLength = let isValidLength (s : string) = s.Length >= minLength...
806 просмотров
schedule 18.09.2023

Как я могу ограничить параметры QuickCheck, например. использовать только неотрицательные целые числа?
Я новичок в Хаскеле. Пока это очень хорошо, но я сталкиваюсь с копированием и вставкой для моих свойств QuickCheck, и я хотел бы это исправить. Вот готовый пример: prop_Myfunc :: [Int] -> (Int,Int) -> Bool prop_Myfunc ints (i,j) = ints...
2102 просмотров
schedule 19.01.2023

quickCheckAll всегда возвращает True
Я пытаюсь использовать QuickCheck после другого ответа . Я тестирую так: {-# LANGUAGE TemplateHaskell #-} import Test.QuickCheck import Test.QuickCheck.All last' :: [a] -> a last' [x] = x last' (_:xs) = last' xs prop_test x = last' x ==...
514 просмотров
schedule 13.08.2022

Вывод хода выполнения с помощью Distribution.TestSuite.QuickCheck
Я использую Distribution.TestSuite.QuickCheck для запуска тестов QuickCheck через cabal test . Мой тестовый модуль экспортирует одно определение: module MOS6502.Tests.Main (tests) where import Distribution.TestSuite.QuickCheck as QC import...
115 просмотров
schedule 21.03.2024

Cabal не выполняет тест quickCheck
Я пишу файл клики для установки библиотеки, написанной на Haskell. Я хочу, чтобы некоторые тесты (написанные с помощью quickCheck ) выполнялись при установке. Cabal-файл выглядит так: ... build-type: Simple cabal-version:...
100 просмотров
schedule 24.03.2024

Минимальные ограничения для генерации произвольного диапазона
Я хотел бы сгенерировать произвольное значение для упорядоченной древовидной структуры, тип которой, скажем, data Tree a = Leaf | Node (Tree a) a (Tree a) Функция, которая вставляет значение в это дерево, сохраняя его упорядоченным,...
366 просмотров
schedule 20.03.2024