Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
test.check + core.logic: Generating the tests. ...
Search
Nicolás Berger
June 25, 2015
Programming
0
40
test.check + core.logic: Generating the tests. And the solutions. [pt-BR]
#clojure #core.logic #test.check
Nicolás Berger
June 25, 2015
Tweet
Share
More Decks by Nicolás Berger
See All by Nicolás Berger
[ES] Introducción a om.next - Clojure User Group Buenos Aires
nberger
0
74
test.check + core.logic: Generating the tests. And the solutions.
nberger
0
41
Other Decks in Programming
See All in Programming
GraphQL×Railsアプリのデータベース負荷分散 - 月間3,000万人利用サービスを無停止で
koxya
1
1.3k
After go func(): Goroutines Through a Beginner’s Eye
97vaibhav
0
390
Goで実践するドメイン駆動開発 AIと歩み始めた新規プロダクト開発の現在地
imkaoru
4
830
(Extension DC 2025) Actor境界を越える技術
teamhimeh
1
250
その面倒な作業、「Dart」にやらせませんか? Flutter開発者のための業務効率化
yordgenome03
1
130
株式会社 Sun terras カンパニーデック
sunterras
0
290
Software Architecture
hschwentner
6
2.3k
XP, Testing and ninja testing ZOZ5
m_seki
3
640
ALL CODE BASE ARE BELONG TO STUDY
uzulla
18
3.2k
TFLintカスタムプラグインで始める Terraformコード品質管理
bells17
2
160
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
550
チームの境界をブチ抜いていけ
tokai235
0
170
Featured
See All Featured
KATA
mclloyd
32
15k
Embracing the Ebb and Flow
colly
88
4.8k
Agile that works and the tools we love
rasmusluckow
331
21k
Navigating Team Friction
lara
190
15k
How to train your dragon (web standard)
notwaldorf
96
6.3k
A better future with KSS
kneath
239
18k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Automating Front-end Workflow
addyosmani
1371
200k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
How to Ace a Technical Interview
jacobian
280
24k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Transcript
Meetup clj-sp Test.check + core.logic Gerando os testes. E as
soluções Nicolás Berger @nicoberger Buzzlabs
Core.logic • Implementação do miniKanren: “an embedded DSL for logic
programming” • “kanren”: “relação” em japonês • Programação declarativa → WHAT not HOW “Separate the search algorithm from the logical construction”
Demo core.logic
test.check • Já geramos as soluções, vamos gerar os testes
• Property-based testing • Generate → Run → Shrink Do not write the tests. Generate them!
Demo core.logic + test.check
Exemplos de core.logic • Puzzles (sudoku, who owns the zebra?)
• Árvore genealógica • Knapsack • Malware & threat analysis (threatgrid) • Static code analyzer (kibit) • Type inferencer (lambda calculus)
Links / Referencias • John Hughes - Testing the Hard
Stuff and Staying Sane https://www.youtube.com/watch?v=zi0rHwfiX1Q • David Nolen https://skillsmatter.com/skillscasts/3553-the-refined-clojurist • Zebra puzzle: https://github.com/swannodette/logic-tutorial#zebras • https://github.com/jonase/kibit • https://github.com/frenchy64/Logic-Starter/wiki • http://minikanren.org/ • http://yellerapp.com/posts/2015-04-13-effective-test-check.html • http://www.philandstuff.com/slides/2014/euroclojure.html • http://blog.guillermowinkler.com/blog/2015/04/12/verifying-state-machine-behavior-us ing-test-dot-check/ • http://stackoverflow.com/questions/28467011/what-are-the-main-technical-difference s-between-prolog-and-minikanren-with-resp
Perguntas? :)