Вопросы по теме '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 просмотров
schedule
13.07.2022
Использование 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 просмотров
schedule
28.06.2022
Случайные тесты, сгенерированные свойством 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