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

Используйте QuickCheck, генерируя простые числа
Фон Ради интереса я пытаюсь написать свойство для быстрой проверки, которое может проверить основную идею криптографии с RSA. . Выберите два различных простых числа, p и q . Пусть N = p*q e — это некоторое число, относительно...
949 просмотров
schedule 03.05.2023

Уникальная генерация случайных чисел Haskell QuickCheck
Кто-нибудь точно знает, как определить генератор в Haskell с помощью QuickCheck, чтобы выбранные элементы выбирались только ОДИН РАЗ? Я дошел до того, что понял, что мне может понадобиться генератор «Gen (возможно, положительный)», но, конечно, он...
1580 просмотров
schedule 03.05.2022

Ошибка привязки набора тестов к библиотеке
Я пытаюсь написать тест, используя quickcheck для простого лексера, который я написал. Тем не менее, я, кажется, сталкиваюсь с какой-то ошибкой ссылки Я строю с помощью cabal-dev мой файл .cabal создает библиотеку «mylib». В разделе библиотеки...
109 просмотров

Использование Haskell QuickCheck для тестирования валидатора TCP-порта
Я пытаюсь использовать QuickCheck (впервые) для тестирования функции, которая проверяет номера портов TCP: validatePort :: Int -> Either String Int validatePort port = if port > 0 && port <= 65535 then Right port else...
240 просмотров
schedule 18.01.2023

Использование QuickCheck для проверки преднамеренных ошибок
Я видел, как QuickCheck можно использовать для тестирования монадического и немонадического кода, но как я могу использовать его для тестирования кода, который обрабатывает ошибки, т. е. выводит какое-то сообщение, а затем вызывает exitWith ?
956 просмотров
schedule 01.02.2023

Как написать генератор Haskell QuickCheck для приоритетной очереди Data.MeldableHeap
В качестве учебного упражнения я хочу написать генератор Data.MeldableHeap . Я сделал это по образцу: https://gitorious.org/aocapq/aocapq/source/7f24bb1571b3bd89ada668ea81c37ccdeb825498:src/PriorityQueue/QuickCheck.hs : genericArbitrary ::...
652 просмотров
schedule 04.06.2022

Классы типа тестирования с Quickcheck, переменное количество параметров
У меня есть класс типа кольца, который выглядит так: class Ring a where addId :: a addInverse :: a -> a mulId :: a add :: a -> a -> a mul :: a -> a -> a Для этого класса у меня есть несколько экземпляров, например...
355 просмотров
schedule 28.07.2023

Уникальность и другие ограничения для произвольной формы в QuickCheck
Я пытаюсь написать модифицированный экземпляр Arbitrary для своего типа данных, где (в моем случае) подкомпонент имеет тип [String] . В идеале я хотел бы привнести уникальность в сам экземпляр, так мне не нужны ==> заголовки / предварительные...
621 просмотров
schedule 21.11.2022

Quickcheck: создание произвольных элементов произвольного набора
Предположим, что я пишу тесты для Data.Set . Я хотел бы проверить, работает ли удаление элементов из набора, поэтому я мог бы написать что-то вроде этого: prop_deleteA it x = member x it ==> not (member x (delete x it)) предполагая, что...
295 просмотров
schedule 09.05.2023

Как я могу сделать свой тип экземпляром произвольного?
У меня есть следующие данные и функции data Foo = A | B deriving (Show) foolist :: Maybe Foo -> [Foo] foolist Nothing = [A] foolist (Just x) = [x] prop_foolist x = (length (foolist x)) == 1 при запуске quickCheck prop_foolist ghc...
1292 просмотров
schedule 23.05.2022

Haskell Test.Framework указывает количество тестов для запуска из командной строки
Эта документация подразумевает, что Test.Framework можно запустить с аргументами командной строки. Существует функция defaultMain :: [Test] -> IO () , а также функция defaultMainWithOpts :: [Test] -> RunnerOptions -> IO () , которая...
279 просмотров

Случайные тесты, сгенерированные свойством Haskell HSpec
Я запускаю тесты с Hspec и Quickcheck http://hspec.github.io/ Предоставленный пример для выполнения случайного тестового примера: it "returns the first element of an *arbitrary* list" $ property $ \x xs -> head (x:xs) == (x :: Int)...
331 просмотров
schedule 12.07.2023

Как быстро проверить свойство аппликативного гомоморфизма?
В качестве упражнения я пытаюсь быстро проверить свойство гомоморфизма аппликатива: чистый f ‹*> чистый x = чистый (f x) Когда я пытаюсь написать свойство в общем виде, используя фантомные типы, мне кажется, что я сталкиваюсь с...
100 просмотров
schedule 15.04.2023

Как совместить монады Arbitrary и IO?
Я пытаюсь написать программу, которая записывает в файл список данных, сгенерированных Arbitrary , и у меня возникли проблемы с объединением монад Arbitrary и IO . Упрощенная версия того, что я пытаюсь сделать, показана ниже. main = do...
230 просмотров
schedule 12.01.2023

Как сгенерировать определенную случайную строку в QuickCheck?
Как в Haskell's QuickCheck сгенерировать строку, которая содержит только символы «S» и «C», а положение «S» и «C» является случайным? Например: "SCCS", "SSSS", "CCCC", "CSSCCS", "" Мой вариант использования таков: У меня есть две функции...
808 просмотров
schedule 30.04.2024

doctest QuickCheck — могу ли я импортировать экземпляры QC только в doctests?
Я использую doctest , и мне нравится тот факт, что я могу тестировать неэкспортированные функции, откуда они определены: module Foo (frobnicate) where -- | -- >>> randomInt = 42 -- True randomInt :: Int randomInt = 42 До сих пор я...
90 просмотров
schedule 26.06.2022

Почему не появляется ни один экземпляр для (Произвольный), возникающий из-за использования ошибки quickCheck?
Я новичок в Haskell, и у меня возникли проблемы с этой ошибкой. Я использую ghci в Windows. Это код: data Direction = North | South | East | West deriving (Eq, Show) type Point = (Int, Int) origin = (0,0) type Road = [Direction]...
835 просмотров
schedule 11.04.2022

Почему сжатие прекращается, как только один из членов полностью сжимается
Я просматриваю комментарии в shrink : Заманчиво написать последнюю строку как [Branch x' l' r' | x' <- shrink x, l' <- shrink l, r' <- shrink r] , но это неправильно! Это заставит QuickCheck сжать x , l и r в тандеме, и...
65 просмотров
schedule 07.08.2023