Публикации по теме '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 просмотров
schedule
31.03.2023
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