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
39
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
72
test.check + core.logic: Generating the tests. And the solutions.
nberger
0
39
Other Decks in Programming
See All in Programming
エンジニア向け採用ピッチ資料
inusan
0
180
プロダクト志向なエンジニアがもう一歩先の価値を目指すために意識したこと
nealle
0
120
WebViewの現在地 - SwiftUI時代のWebKit - / The Current State Of WebView
marcy731
0
100
Hypervel - A Coroutine Framework for Laravel Artisans
albertcht
1
110
ニーリーにおけるプロダクトエンジニア
nealle
0
680
Cline指示通りに動かない? AI小説エージェントで学ぶ指示書の書き方と自動アップデートの仕組み
kamomeashizawa
1
600
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
0
280
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
110
「Cursor/Devin全社導入の理想と現実」のその後
saitoryc
0
640
Result型で“失敗”を型にするPHPコードの書き方
kajitack
4
550
システム成長を止めない!本番無停止テーブル移行の全貌
sakawe_ee
1
150
Kotlin エンジニアへ送る:Swift 案件に参加させられる日に備えて~似てるけど色々違う Swift の仕様 / from Kotlin to Swift
lovee
1
260
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
331
24k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
The Cult of Friendly URLs
andyhume
79
6.5k
4 Signs Your Business is Dying
shpigford
184
22k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Adopting Sorbet at Scale
ufuk
77
9.4k
Optimizing for Happiness
mojombo
379
70k
Designing Experiences People Love
moore
142
24k
Bash Introduction
62gerente
614
210k
GraphQLとの向き合い方2022年版
quramy
49
14k
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? :)