SlideShare a Scribd company logo
1 of 24
Phil Trelford at CukeUp 2013
@ptrelford
Specification
                            By Example
              Behaviour
              Driven
              Development

Acceptance
Test Driven
Development
You want to do X,
            and you think Y is the best way of doing so.
Instead of asking about X,
                   you ask about Y.
You want to do deliver the right software,
   and you think SpecFlow is the best way of doing so.
Instead of asking about Specification By Example,
               you ask about SpecFlow.
 How can we stop these scenarios being so brittle?
 How do we use our BDD tool to do <this kind of testing>?
 We’re using a BDD tool. How do we get our analysts to help us?
 How can we avoid all this duplication in our scenarios?
 What do we do if the business aren’t interested in BDD?
1.1 - Two firm orders in the market, existing implied calendar order
h4. *Given*
* the following orders already exist:
| ID | Contract | Existing Order |
| 1 | <contract 1> | <order 1> |
| 2 | <contract 2> | <order 2> |
h4. *When*
* I subscribe to implied orders for <observed contract>
* The following orders are added:
|| ID || Contract || Added Order ||
| A  | <contract A> | <order A> |
h4. *Then*
* I should observe the following implied orders:
|| Contract || Implied Order  ||
| <observed contract>  | <implied order>  |
h4. *Examples*
|| contract 1 || order 1 || contract A || order A || observed contract || implied order ||
| API2 - Jul 2010 | Bid 5@10 | API2 - Aug 2010 | Ask 5@10 | API2 - Jul 2010 x Aug 2010 | Bid 5@0 |
| API2 - Jul 2010 | Bid 5@20 | API2 - Aug 2010 | Ask 5@10 | API2 - Jul 2010 x Aug 2010 | Bid 5@10 |
| API2 - Jul 2010 | Bid 5@20 | API2 - Aug 2010 | Ask 5@30 | API2 - Jul 2010 x Aug 2010 | Bid@-10 |
| API2 - Jul 2010 | Ask 5@10 | API2 - Aug 2010 | Bid 5@10 | API2 - Jul 2010 x Aug 2010 | Ask 5@0 |
| API2 - Jul 2010 | Ask 5@20 | API2 - Aug 2010 | Bid 5@10 | API2 - Jul 2010 x Aug 2010 | Ask 5@10 |
| API2 - Jul 2010 | Ask 5@20 | API2 - Aug 2010 | Bid 5@30 | API2 - Jul 2010 x Aug 2010 | Ask 5@-10 |
| API2 - Jul 2010 x Aug 2010 | Bid 5@0 | API2 - Aug 2010 | Bid 5@5 | API2 - Jul 2010 | Bid 5@5 |
| API2 - Jul 2010 x Aug 2010 | Ask 5@0 | API2 - Aug 2010 | Ask@5 | API2 - Jul 2010 | Ask 5@5 |
| API2 - Jul 2010 x Aug 2010 | Bid 5@5 | API2 - Aug 2010 | Bid 5@5 | API2 - Jul 2010 | Bid 5@10 |
| API2 - Jul 2010 x Aug 2010 | Ask 5@5 | API2 - Aug 2010 | Ask@5 | API2 - Jul 2010 | Ask 5@10 |
| API2 - Jul 2010 x Aug 2010 | Bid 5@-5 | API2 - Aug 2010 | Bid 5@5 | API2 - Jul 2010 | Bid 5@0 |
| API2 - Jul 2010 x Aug 2010 | Ask 5@-5 | API2 - Aug 2010 | Ask@5 | API2 - Jul 2010 | Ask 5@0 |
Scenario: [2.B] First leg is generated when orders already exist on the second leg and the spread.
   Given the following orders already exist:
         | ID | Contract                     | Existing Order |
         | AB | <contract A> - <contract B> | <order AB>      |
         | B | <contract B>                  | <order B>      |
    Then I should observe these implied orders:
         | Source | Contract     | Implied Order   |
         | AB+B   | <contract A> | <implied order> |

    Examples:
         | order AB      | order B        | implied order |
         | Bid (0,5]@0   | Bid (0,5.5]@10 | Bid (0,5]@10 |
         | Ask (0,5]@0   | Ask (0,5]@5    | Ask (0,5]@5   |

    Examples:
         | contract A                                  |   contract B                                  |
         | "API 2" "Nov 2010"                          |   "API 2" "Dec 2010"                          |
         | "API 2" "Nov 2010"                          |   "API 4" "Nov 2010"                          |
         | ("API 2" "Nov 2010" - "API 4" "Nov 2010")   |   ("API 2" "Dec 2010" - "API 4" "Dec 2010")   |
 Feature
 Background
 Scenario
 Scenario Outline
 Examples
 Background
 Scenario
 Scenario Outline
 Examples
 Scenario Outline
 Examples
 Examples
 Background
 Scenario
 Scenario Outline
 Scenario Outline
 Shared Examples
 Shared Examples of @tag
Scenario: Change propagates from a value cell to a reference via 3 references
Given a sheet with data:
| Row |     A   |   B   |   C   |   D   |   E   |
|   1   |   1   | =A1 | =B1 | =C1 | =D1 |
When the values are changed:
| Cell | Value |
| A1    | 2         |
Then the values should equal:
| Cell | Value |
| E1    | 2         |
Scenario: Sum from 3 horizontal cells
Given a sheet with data:
| Row | A      | B       | C   | D     |
|   1    | 1   | 10 | 100 | =<formula> |
When the cell values are computed
Then the values should equal:
| Cell | Value |
|   D1    | 111      |


Examples:
| formula            |
| A1+B1+C1               |
| SUM(A1,B1,C1) |
| SUM(A1:C1)             |
| SUM(C1:A1)             |
Twitter: @ptrelford
Blog: http://trelford.com/blog


Joule: http://trayport.com/Joule
Tsunami IDE: http://tsunami.io
TickSpec: http://tickspec.codeplex.com
Cellz: http://cellz.codeplex.com

More Related Content

More from Phillip Trelford

F# for C# devs - Copenhagen .Net 2015
F# for C# devs - Copenhagen .Net 2015F# for C# devs - Copenhagen .Net 2015
F# for C# devs - Copenhagen .Net 2015Phillip Trelford
 
Generative Art - Functional Vilnius 2015
Generative Art - Functional Vilnius 2015Generative Art - Functional Vilnius 2015
Generative Art - Functional Vilnius 2015Phillip Trelford
 
24 hours later - FSharp Gotham 2015
24 hours later - FSharp Gotham  201524 hours later - FSharp Gotham  2015
24 hours later - FSharp Gotham 2015Phillip Trelford
 
Building cross platform games with Xamarin - Birmingham 2015
Building cross platform games with Xamarin - Birmingham 2015Building cross platform games with Xamarin - Birmingham 2015
Building cross platform games with Xamarin - Birmingham 2015Phillip Trelford
 
Beyond Lists - Functional Kats Conf Dublin 2015
Beyond Lists - Functional Kats Conf Dublin 2015Beyond Lists - Functional Kats Conf Dublin 2015
Beyond Lists - Functional Kats Conf Dublin 2015Phillip Trelford
 
FSharp On The Desktop - Birmingham FP 2015
FSharp On The Desktop - Birmingham FP 2015FSharp On The Desktop - Birmingham FP 2015
FSharp On The Desktop - Birmingham FP 2015Phillip Trelford
 
Ready, steady, cross platform games - ProgNet 2015
Ready, steady, cross platform games - ProgNet 2015Ready, steady, cross platform games - ProgNet 2015
Ready, steady, cross platform games - ProgNet 2015Phillip Trelford
 
F# for C# devs - NDC Oslo 2015
F# for C# devs - NDC Oslo 2015F# for C# devs - NDC Oslo 2015
F# for C# devs - NDC Oslo 2015Phillip Trelford
 
F# for C# devs - Leeds Sharp 2015
F# for C# devs -  Leeds Sharp 2015F# for C# devs -  Leeds Sharp 2015
F# for C# devs - Leeds Sharp 2015Phillip Trelford
 
Build a compiler in 2hrs - NCrafts Paris 2015
Build a compiler in 2hrs -  NCrafts Paris 2015Build a compiler in 2hrs -  NCrafts Paris 2015
Build a compiler in 2hrs - NCrafts Paris 2015Phillip Trelford
 
24 Hours Later - NCrafts Paris 2015
24 Hours Later - NCrafts Paris 201524 Hours Later - NCrafts Paris 2015
24 Hours Later - NCrafts Paris 2015Phillip Trelford
 
Machine learning from disaster - GL.Net 2015
Machine learning from disaster  - GL.Net 2015Machine learning from disaster  - GL.Net 2015
Machine learning from disaster - GL.Net 2015Phillip Trelford
 
F# for Trading - QuantLabs 2014
F# for Trading -  QuantLabs 2014F# for Trading -  QuantLabs 2014
F# for Trading - QuantLabs 2014Phillip Trelford
 
Write Your Own Compiler in 24 Hours
Write Your Own Compiler in 24 HoursWrite Your Own Compiler in 24 Hours
Write Your Own Compiler in 24 HoursPhillip Trelford
 
Keyboard warriors #1 copenhagen performance
Keyboard warriors #1 copenhagen   performanceKeyboard warriors #1 copenhagen   performance
Keyboard warriors #1 copenhagen performancePhillip Trelford
 
F# Eye 4 the C# Guy - DDD Cambridge Nights 2014
F# Eye 4 the C# Guy -  DDD Cambridge Nights 2014F# Eye 4 the C# Guy -  DDD Cambridge Nights 2014
F# Eye 4 the C# Guy - DDD Cambridge Nights 2014Phillip Trelford
 
FSharp for Trading - CodeMesh 2013
FSharp for Trading - CodeMesh 2013FSharp for Trading - CodeMesh 2013
FSharp for Trading - CodeMesh 2013Phillip Trelford
 

More from Phillip Trelford (20)

F# for C# devs - Copenhagen .Net 2015
F# for C# devs - Copenhagen .Net 2015F# for C# devs - Copenhagen .Net 2015
F# for C# devs - Copenhagen .Net 2015
 
Generative Art - Functional Vilnius 2015
Generative Art - Functional Vilnius 2015Generative Art - Functional Vilnius 2015
Generative Art - Functional Vilnius 2015
 
24 hours later - FSharp Gotham 2015
24 hours later - FSharp Gotham  201524 hours later - FSharp Gotham  2015
24 hours later - FSharp Gotham 2015
 
Building cross platform games with Xamarin - Birmingham 2015
Building cross platform games with Xamarin - Birmingham 2015Building cross platform games with Xamarin - Birmingham 2015
Building cross platform games with Xamarin - Birmingham 2015
 
Beyond Lists - Functional Kats Conf Dublin 2015
Beyond Lists - Functional Kats Conf Dublin 2015Beyond Lists - Functional Kats Conf Dublin 2015
Beyond Lists - Functional Kats Conf Dublin 2015
 
FSharp On The Desktop - Birmingham FP 2015
FSharp On The Desktop - Birmingham FP 2015FSharp On The Desktop - Birmingham FP 2015
FSharp On The Desktop - Birmingham FP 2015
 
Ready, steady, cross platform games - ProgNet 2015
Ready, steady, cross platform games - ProgNet 2015Ready, steady, cross platform games - ProgNet 2015
Ready, steady, cross platform games - ProgNet 2015
 
F# for C# devs - NDC Oslo 2015
F# for C# devs - NDC Oslo 2015F# for C# devs - NDC Oslo 2015
F# for C# devs - NDC Oslo 2015
 
F# for C# devs - Leeds Sharp 2015
F# for C# devs -  Leeds Sharp 2015F# for C# devs -  Leeds Sharp 2015
F# for C# devs - Leeds Sharp 2015
 
Build a compiler in 2hrs - NCrafts Paris 2015
Build a compiler in 2hrs -  NCrafts Paris 2015Build a compiler in 2hrs -  NCrafts Paris 2015
Build a compiler in 2hrs - NCrafts Paris 2015
 
24 Hours Later - NCrafts Paris 2015
24 Hours Later - NCrafts Paris 201524 Hours Later - NCrafts Paris 2015
24 Hours Later - NCrafts Paris 2015
 
Real World F# - SDD 2015
Real World F# -  SDD 2015Real World F# -  SDD 2015
Real World F# - SDD 2015
 
F# for C# devs - SDD 2015
F# for C# devs - SDD 2015F# for C# devs - SDD 2015
F# for C# devs - SDD 2015
 
Machine learning from disaster - GL.Net 2015
Machine learning from disaster  - GL.Net 2015Machine learning from disaster  - GL.Net 2015
Machine learning from disaster - GL.Net 2015
 
F# for Trading - QuantLabs 2014
F# for Trading -  QuantLabs 2014F# for Trading -  QuantLabs 2014
F# for Trading - QuantLabs 2014
 
Write Your Own Compiler in 24 Hours
Write Your Own Compiler in 24 HoursWrite Your Own Compiler in 24 Hours
Write Your Own Compiler in 24 Hours
 
F# in your pipe
F# in your pipeF# in your pipe
F# in your pipe
 
Keyboard warriors #1 copenhagen performance
Keyboard warriors #1 copenhagen   performanceKeyboard warriors #1 copenhagen   performance
Keyboard warriors #1 copenhagen performance
 
F# Eye 4 the C# Guy - DDD Cambridge Nights 2014
F# Eye 4 the C# Guy -  DDD Cambridge Nights 2014F# Eye 4 the C# Guy -  DDD Cambridge Nights 2014
F# Eye 4 the C# Guy - DDD Cambridge Nights 2014
 
FSharp for Trading - CodeMesh 2013
FSharp for Trading - CodeMesh 2013FSharp for Trading - CodeMesh 2013
FSharp for Trading - CodeMesh 2013
 

Recently uploaded

Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Recently uploaded (20)

The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Examples, Examples, Examples!

  • 1. Phil Trelford at CukeUp 2013 @ptrelford
  • 2. Specification By Example Behaviour Driven Development Acceptance Test Driven Development
  • 3. You want to do X, and you think Y is the best way of doing so. Instead of asking about X, you ask about Y.
  • 4. You want to do deliver the right software, and you think SpecFlow is the best way of doing so. Instead of asking about Specification By Example, you ask about SpecFlow.
  • 5.  How can we stop these scenarios being so brittle?  How do we use our BDD tool to do <this kind of testing>?  We’re using a BDD tool. How do we get our analysts to help us?  How can we avoid all this duplication in our scenarios?  What do we do if the business aren’t interested in BDD?
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. 1.1 - Two firm orders in the market, existing implied calendar order h4. *Given* * the following orders already exist: | ID | Contract | Existing Order | | 1 | <contract 1> | <order 1> | | 2 | <contract 2> | <order 2> | h4. *When* * I subscribe to implied orders for <observed contract> * The following orders are added: || ID || Contract || Added Order || | A | <contract A> | <order A> | h4. *Then* * I should observe the following implied orders: || Contract || Implied Order || | <observed contract> | <implied order> |
  • 11. h4. *Examples* || contract 1 || order 1 || contract A || order A || observed contract || implied order || | API2 - Jul 2010 | Bid 5@10 | API2 - Aug 2010 | Ask 5@10 | API2 - Jul 2010 x Aug 2010 | Bid 5@0 | | API2 - Jul 2010 | Bid 5@20 | API2 - Aug 2010 | Ask 5@10 | API2 - Jul 2010 x Aug 2010 | Bid 5@10 | | API2 - Jul 2010 | Bid 5@20 | API2 - Aug 2010 | Ask 5@30 | API2 - Jul 2010 x Aug 2010 | Bid@-10 | | API2 - Jul 2010 | Ask 5@10 | API2 - Aug 2010 | Bid 5@10 | API2 - Jul 2010 x Aug 2010 | Ask 5@0 | | API2 - Jul 2010 | Ask 5@20 | API2 - Aug 2010 | Bid 5@10 | API2 - Jul 2010 x Aug 2010 | Ask 5@10 | | API2 - Jul 2010 | Ask 5@20 | API2 - Aug 2010 | Bid 5@30 | API2 - Jul 2010 x Aug 2010 | Ask 5@-10 | | API2 - Jul 2010 x Aug 2010 | Bid 5@0 | API2 - Aug 2010 | Bid 5@5 | API2 - Jul 2010 | Bid 5@5 | | API2 - Jul 2010 x Aug 2010 | Ask 5@0 | API2 - Aug 2010 | Ask@5 | API2 - Jul 2010 | Ask 5@5 | | API2 - Jul 2010 x Aug 2010 | Bid 5@5 | API2 - Aug 2010 | Bid 5@5 | API2 - Jul 2010 | Bid 5@10 | | API2 - Jul 2010 x Aug 2010 | Ask 5@5 | API2 - Aug 2010 | Ask@5 | API2 - Jul 2010 | Ask 5@10 | | API2 - Jul 2010 x Aug 2010 | Bid 5@-5 | API2 - Aug 2010 | Bid 5@5 | API2 - Jul 2010 | Bid 5@0 | | API2 - Jul 2010 x Aug 2010 | Ask 5@-5 | API2 - Aug 2010 | Ask@5 | API2 - Jul 2010 | Ask 5@0 |
  • 12. Scenario: [2.B] First leg is generated when orders already exist on the second leg and the spread. Given the following orders already exist: | ID | Contract | Existing Order | | AB | <contract A> - <contract B> | <order AB> | | B | <contract B> | <order B> | Then I should observe these implied orders: | Source | Contract | Implied Order | | AB+B | <contract A> | <implied order> | Examples: | order AB | order B | implied order | | Bid (0,5]@0 | Bid (0,5.5]@10 | Bid (0,5]@10 | | Ask (0,5]@0 | Ask (0,5]@5 | Ask (0,5]@5 | Examples: | contract A | contract B | | "API 2" "Nov 2010" | "API 2" "Dec 2010" | | "API 2" "Nov 2010" | "API 4" "Nov 2010" | | ("API 2" "Nov 2010" - "API 4" "Nov 2010") | ("API 2" "Dec 2010" - "API 4" "Dec 2010") |
  • 13.
  • 14.  Feature  Background  Scenario  Scenario Outline  Examples
  • 15.  Background  Scenario  Scenario Outline  Examples  Scenario Outline  Examples  Examples
  • 16.  Background  Scenario  Scenario Outline  Scenario Outline  Shared Examples  Shared Examples of @tag
  • 17.
  • 18.
  • 19. Scenario: Change propagates from a value cell to a reference via 3 references Given a sheet with data: | Row | A | B | C | D | E | | 1 | 1 | =A1 | =B1 | =C1 | =D1 | When the values are changed: | Cell | Value | | A1 | 2 | Then the values should equal: | Cell | Value | | E1 | 2 |
  • 20. Scenario: Sum from 3 horizontal cells Given a sheet with data: | Row | A | B | C | D | | 1 | 1 | 10 | 100 | =<formula> | When the cell values are computed Then the values should equal: | Cell | Value | | D1 | 111 | Examples: | formula | | A1+B1+C1 | | SUM(A1,B1,C1) | | SUM(A1:C1) | | SUM(C1:A1) |
  • 21.
  • 22.
  • 23.
  • 24. Twitter: @ptrelford Blog: http://trelford.com/blog Joule: http://trayport.com/Joule Tsunami IDE: http://tsunami.io TickSpec: http://tickspec.codeplex.com Cellz: http://cellz.codeplex.com