|
From: Erik V. <ev...@us...> - 2011-11-22 23:43:31
|
rails/game/action/SellShares.java | 5
test/data/test/1830_SellFullPresCert.report | 257 ++++++
test/data/test/1830_SellHalfPresCert.report | 257 ++++++
test/data/test/1835_NatDoubleShare.report | 874 ++++++++++++++++++++++
test/data/test/1835_NatSingleShare.report | 66 +
test/data/test/1835_SwapPresForDoubleShare.report | 66 +
6 files changed, 1524 insertions(+), 1 deletion(-)
New commits:
commit 5183cc7a7d798f17479525d466fbc4fcc82e149f
Author: Erik Vos <eri...@xs...>
Date: Wed Nov 23 00:36:27 2011 +0100
Restored removed field numberSold from SellShares action.
This proved necessary for backwards compatibility.
Refreshed the related new test cases.
diff --git a/rails/game/action/SellShares.java b/rails/game/action/SellShares.java
index e266a7a..63e66a2 100644
--- a/rails/game/action/SellShares.java
+++ b/rails/game/action/SellShares.java
@@ -32,6 +32,9 @@ public class SellShares extends PossibleAction {
*/
private int presidentExchange = 0;
+ // For backwards compatibility only
+ private int numberSold = 0;
+
public static final long serialVersionUID = 1L;
public SellShares(String companyName, int shareUnits, int number,
@@ -134,7 +137,7 @@ public class SellShares extends PossibleAction {
shareUnits = fields.get("shareUnits", shareUnits);
share = fields.get("share", share);
price = fields.get("price", price);
- int numberSold = fields.get("numberSold", 0); // For backwards compatibility
+ numberSold = fields.get("numberSold", 0); // For backwards compatibility
number = fields.get("number", numberSold);
presidentExchange = fields.get("presidentExchange", 0);
diff --git a/test/data/test/1830_SellFullPresCert.report b/test/data/test/1830_SellFullPresCert.report
index 63f22fb..7baab94 100644
--- a/test/data/test/1830_SellFullPresCert.report
+++ b/test/data/test/1830_SellFullPresCert.report
@@ -8,3 +8,260 @@ StartOfPhase,2
BankSizeIs,9600
StartOfInitialRound
HasPriority,Alice
+BuysItemFor,Alice,SVNRR,20
+BuysItemFor,Bob,C&StL,40
+BuysItemFor,Charlie,D&H,70
+BuysItemFor,Alice,M&H,110
+BuysItemFor,Bob,C&A,160
+ALSO_GETS,Bob,CERT_NAME,PRR,10
+BuysItemFor,Charlie,B&O,220
+ALSO_GETS,Charlie,PRES_CERT_NAME,B&O,20
+Has,Alice,670
+Has,Bob,600
+Has,Charlie,510
+StartStockRound,1
+HasPriority,Alice
+START_COMPANY_LOG,Alice,NYNH,100,200,2,20,BANK
+START_COMPANY_LOG,Bob,PRR,100,200,2,20,BANK
+BUY_SHARE_LOG,Charlie,10,B&O,IPO,100
+BUY_SHARE_LOG,Alice,10,NYNH,IPO,100
+BUY_SHARE_LOG,Bob,10,PRR,IPO,100
+BUY_SHARE_LOG,Charlie,10,B&O,IPO,100
+BUY_SHARE_LOG,Alice,10,NYNH,IPO,100
+BUY_SHARE_LOG,Bob,10,PRR,IPO,100
+BUY_SHARE_LOG,Charlie,10,B&O,IPO,100
+BUY_SHARE_LOG,Alice,10,NYNH,IPO,100
+BUY_SHARE_LOG,Bob,10,PRR,IPO,100
+FloatsWithCash,PRR,1000
+BUY_SHARE_LOG,Charlie,10,B&O,IPO,100
+FloatsWithCash,B&O,1000
+BUY_SHARE_LOG,Alice,10,NYNH,IPO,100
+FloatsWithCash,NYNH,1000
+BUY_SHARE_LOG,Bob,10,B&O,IPO,100
+BUY_SHARE_LOG,Charlie,10,NYNH,IPO,100
+PASSES,Alice
+PASSES,Bob
+PASSES,Charlie
+
+END_SR,1
+Has,B&O,1000
+Has,NYNH,1000
+Has,PRR,1000
+Has,Alice,70
+Has,Bob,0
+Has,Charlie,10
+START_OR,1.1
+ReceivesFor,Alice,5,SVNRR
+ReceivesFor,Bob,10,C&StL
+ReceivesFor,Charlie,15,D&H
+ReceivesFor,Alice,20,M&H
+ReceivesFor,Bob,25,C&A
+ReceivesFor,Charlie,30,B&O
+
+CompanyOperates,B&O,Charlie
+LaysTileAtFor,B&O,57,J14,SW,80
+LAYS_TOKEN_ON,B&O,J14,40
+CompanyDoesNotPayDividend,B&O
+PRICE_MOVES_LOG,B&O,100,G1,90,F1
+BuysTrain,B&O,2,IPO,80
+PrivateCloses,B&O
+FirstTrainBought,2
+BuysTrain,B&O,2,IPO,80
+BuysTrain,B&O,2,IPO,80
+
+CompanyOperates,NYNH,Alice
+LaysTileAt,NYNH,1,F20,SW
+CompanyDoesNotPayDividend,NYNH
+PRICE_MOVES_LOG,NYNH,100,G1,90,F1
+BuysTrain,NYNH,2,IPO,80
+BuysTrain,NYNH,2,IPO,80
+BuysTrain,NYNH,2,IPO,80
+All 2-trains are sold out, 3-trains now available
+BuysTrain,NYNH,3,IPO,180
+FirstTrainBought,3
+StartOfPhase,3
+BuysPrivateFromFor,NYNH,SVNRR,Alice,40
+BuysPrivateFromFor,NYNH,M&H,Alice,220
+
+CompanyOperates,PRR,Bob
+LaysTileAt,PRR,9,H14,W
+CompanyDoesNotPayDividend,PRR
+PRICE_MOVES_LOG,PRR,100,G1,90,F1
+BuysTrain,PRR,3,IPO,180
+BuysPrivateFromFor,PRR,C&StL,Bob,80
+BuysPrivateFromFor,PRR,C&A,Bob,320
+
+EndOfOperatingRound,1.1
+ORWorthIncrease,Alice,1.1,95
+ORWorthIncrease,Bob,1.1,165
+ORWorthIncrease,Charlie,1.1,-245
+Has,B&O,640
+Has,NYNH,320
+Has,PRR,420
+Has,Alice,355
+Has,Bob,435
+Has,Charlie,55
+StartStockRound,2
+HasPriority,Alice
+SELL_SHARE_LOG,Alice,10,NYNH,90
+PRICE_MOVES_LOG,NYNH,90,F1,82,F2
+START_COMPANY_LOG,Alice,C&O,67,134,2,20,BANK
+SELL_SHARE_LOG,Bob,10,B&O,90
+PRICE_MOVES_LOG,B&O,90,F1,82,F2
+START_COMPANY_LOG,Bob,NYC,82,164,2,20,BANK
+PASSES,Charlie
+BUY_SHARE_LOG,Alice,10,C&O,IPO,67
+BUY_SHARE_LOG,Bob,10,NYC,IPO,82
+PASSES,Charlie
+BUY_SHARE_LOG,Alice,10,C&O,IPO,67
+BUY_SHARE_LOG,Bob,10,NYC,IPO,82
+PASSES,Charlie
+BUY_SHARE_LOG,Alice,10,C&O,IPO,67
+BUY_SHARE_LOG,Bob,10,NYC,IPO,82
+PASSES,Charlie
+BUY_SHARE_LOG,Alice,10,C&O,IPO,67
+FloatsWithCash,C&O,670
+BUY_SHARE_LOG,Bob,10,NYC,IPO,82
+FloatsWithCash,NYC,820
+PASSES,Charlie
+PASSES,Alice
+PASSES,Bob
+
+END_SR,2
+Has,B&O,640
+Has,C&O,670
+Has,NYC,820
+Has,NYNH,320
+Has,PRR,420
+Has,Alice,43
+Has,Bob,33
+Has,Charlie,55
+START_OR,2.1
+ReceivesFor,NYNH,5,SVNRR
+ReceivesFor,PRR,10,C&StL
+ReceivesFor,Charlie,15,D&H
+ReceivesFor,NYNH,20,M&H
+ReceivesFor,PRR,25,C&A
+
+CompanyOperates,PRR,Bob
+LaysTileAt,PRR,57,H16,W
+LAYS_TOKEN_ON,PRR,H16,40
+CompanyRevenue,PRR,30
+CompanyPaysOutFull,PRR,30
+Payout,Bob,18,6,10
+PRICE_MOVES_LOG,PRR,90,F1,100,G1
+
+CompanyOperates,NYC,Bob
+LaysTileAt,NYC,57,E19,SW
+CompanyDoesNotPayDividend,NYC
+PRICE_MOVES_LOG,NYC,82,G3,76,F3
+BuysTrain,NYC,3,IPO,180
+
+CompanyOperates,NYNH,Alice
+LaysTileAtFor,NYNH,57,F22,W,80
+LAYS_TOKEN_ON,NYNH,F22,40
+CompanyRevenue,NYNH,130
+CompanyPaysOutFull,NYNH,130
+Payout,Alice,65,5,10
+Payout,Charlie,13,1,10
+Payout,NYNH,13,1,10
+PRICE_MOVES_LOG,NYNH,82,F2,90,G2
+
+CompanyOperates,B&O,Charlie
+LaysTileAt,B&O,14,J14,NW
+CompanyRevenue,B&O,130
+CompanyPaysOutFull,B&O,130
+Payout,Charlie,78,6,10
+Payout,B&O,13,1,10
+PRICE_MOVES_LOG,B&O,82,F2,90,G2
+BuysTrain,B&O,3,IPO,180
+BuysPrivateFromFor,B&O,D&H,Charlie,140
+
+CompanyOperates,C&O,Alice
+LaysTileAt,C&O,8,G5,W
+CompanyDoesNotPayDividend,C&O
+PRICE_MOVES_LOG,C&O,67,G6,65,F6
+BuysTrain,C&O,3,IPO,180
+All 3-trains are sold out, 4-trains now available
+
+EndOfOperatingRound,2.1
+ORWorthIncrease,Alice,2.1,93
+ORWorthIncrease,Bob,2.1,42
+ORWorthIncrease,Charlie,2.1,232
+Has,B&O,333
+Has,C&O,490
+Has,NYC,640
+Has,NYNH,238
+Has,PRR,415
+Has,Alice,108
+Has,Bob,51
+Has,Charlie,301
+START_OR,2.2
+ReceivesFor,NYNH,5,SVNRR
+ReceivesFor,PRR,10,C&StL
+ReceivesFor,B&O,15,D&H
+ReceivesFor,NYNH,20,M&H
+ReceivesFor,PRR,25,C&A
+
+CompanyOperates,PRR,Bob
+LaysTileAt,PRR,59,H18,W
+LaysTileAt,PRR,58,B20,SW
+CompanyRevenue,PRR,60
+CompanyPaysOutFull,PRR,60
+Payout,Bob,36,6,10
+PRICE_MOVES_LOG,PRR,100,G1,112,H1
+BuysTrain,PRR,4,IPO,300
+FirstTrainBought,4
+StartOfPhase,4
+
+CompanyOperates,NYNH,Alice
+LaysTileAtFor,NYNH,54,G19,SW,80
+CompanyRevenue,NYNH,90
+CompanyPaysOutFull,NYNH,90
+Payout,Alice,45,5,10
+Payout,Charlie,9,1,10
+Payout,NYNH,9,1,10
+PRICE_MOVES_LOG,NYNH,90,G2,100,H2
+BuysTrain,NYNH,4,PRR,191
+
+CompanyOperates,B&O,Charlie
+LaysTileAt,B&O,53,I15,SW
+CompanyRevenue,B&O,110
+CompanyPaysOutFull,B&O,110
+Payout,Charlie,66,6,10
+Payout,B&O,11,1,10
+PRICE_MOVES_LOG,B&O,90,G2,100,H2
+BuysTrain,B&O,4,IPO,300
+
+CompanyOperates,NYC,Bob
+LaysTileAt,NYC,8,F18,NE
+CompanyRevenue,NYC,80
+CompanyPaysOutFull,NYC,80
+Payout,Bob,48,6,10
+PRICE_MOVES_LOG,NYC,76,F3,82,G3
+BuysTrain,NYC,4,IPO,300
+
+CompanyOperates,C&O,Alice
+LaysTileAt,C&O,8,G3,NW
+CompanyRevenue,C&O,70
+CompanyWithholds,C&O,70
+PRICE_MOVES_LOG,C&O,65,F6,58,E6
+
+EndOfOperatingRound,2.2
+ORWorthIncrease,Alice,2.2,53
+ORWorthIncrease,Bob,2.2,192
+ORWorthIncrease,Charlie,2.2,145
+Has,B&O,59
+Has,C&O,560
+Has,NYC,340
+Has,NYNH,1
+Has,PRR,341
+Has,Alice,153
+Has,Bob,135
+Has,Charlie,376
+StartStockRound,3
+HasPriority,Charlie
+BUY_SHARE_LOG,Charlie,10,NYNH,Pool,100
+SELL_SHARES_LOG,Alice,5,10,50,NYNH,500
+PRICE_MOVES_LOG,NYNH,100,H2,69,H7
+IS_NOW_PRES_OF,Charlie,NYNH
diff --git a/test/data/test/1830_SellHalfPresCert.report b/test/data/test/1830_SellHalfPresCert.report
index 63f22fb..956167d 100644
--- a/test/data/test/1830_SellHalfPresCert.report
+++ b/test/data/test/1830_SellHalfPresCert.report
@@ -8,3 +8,260 @@ StartOfPhase,2
BankSizeIs,9600
StartOfInitialRound
HasPriority,Alice
+BuysItemFor,Alice,SVNRR,20
+BuysItemFor,Bob,C&StL,40
+BuysItemFor,Charlie,D&H,70
+BuysItemFor,Alice,M&H,110
+BuysItemFor,Bob,C&A,160
+ALSO_GETS,Bob,CERT_NAME,PRR,10
+BuysItemFor,Charlie,B&O,220
+ALSO_GETS,Charlie,PRES_CERT_NAME,B&O,20
+Has,Alice,670
+Has,Bob,600
+Has,Charlie,510
+StartStockRound,1
+HasPriority,Alice
+START_COMPANY_LOG,Alice,NYNH,100,200,2,20,BANK
+START_COMPANY_LOG,Bob,PRR,100,200,2,20,BANK
+BUY_SHARE_LOG,Charlie,10,B&O,IPO,100
+BUY_SHARE_LOG,Alice,10,NYNH,IPO,100
+BUY_SHARE_LOG,Bob,10,PRR,IPO,100
+BUY_SHARE_LOG,Charlie,10,B&O,IPO,100
+BUY_SHARE_LOG,Alice,10,NYNH,IPO,100
+BUY_SHARE_LOG,Bob,10,PRR,IPO,100
+BUY_SHARE_LOG,Charlie,10,B&O,IPO,100
+BUY_SHARE_LOG,Alice,10,NYNH,IPO,100
+BUY_SHARE_LOG,Bob,10,PRR,IPO,100
+FloatsWithCash,PRR,1000
+BUY_SHARE_LOG,Charlie,10,B&O,IPO,100
+FloatsWithCash,B&O,1000
+BUY_SHARE_LOG,Alice,10,NYNH,IPO,100
+FloatsWithCash,NYNH,1000
+BUY_SHARE_LOG,Bob,10,B&O,IPO,100
+BUY_SHARE_LOG,Charlie,10,NYNH,IPO,100
+PASSES,Alice
+PASSES,Bob
+PASSES,Charlie
+
+END_SR,1
+Has,B&O,1000
+Has,NYNH,1000
+Has,PRR,1000
+Has,Alice,70
+Has,Bob,0
+Has,Charlie,10
+START_OR,1.1
+ReceivesFor,Alice,5,SVNRR
+ReceivesFor,Bob,10,C&StL
+ReceivesFor,Charlie,15,D&H
+ReceivesFor,Alice,20,M&H
+ReceivesFor,Bob,25,C&A
+ReceivesFor,Charlie,30,B&O
+
+CompanyOperates,B&O,Charlie
+LaysTileAtFor,B&O,57,J14,SW,80
+LAYS_TOKEN_ON,B&O,J14,40
+CompanyDoesNotPayDividend,B&O
+PRICE_MOVES_LOG,B&O,100,G1,90,F1
+BuysTrain,B&O,2,IPO,80
+PrivateCloses,B&O
+FirstTrainBought,2
+BuysTrain,B&O,2,IPO,80
+BuysTrain,B&O,2,IPO,80
+
+CompanyOperates,NYNH,Alice
+LaysTileAt,NYNH,1,F20,SW
+CompanyDoesNotPayDividend,NYNH
+PRICE_MOVES_LOG,NYNH,100,G1,90,F1
+BuysTrain,NYNH,2,IPO,80
+BuysTrain,NYNH,2,IPO,80
+BuysTrain,NYNH,2,IPO,80
+All 2-trains are sold out, 3-trains now available
+BuysTrain,NYNH,3,IPO,180
+FirstTrainBought,3
+StartOfPhase,3
+BuysPrivateFromFor,NYNH,SVNRR,Alice,40
+BuysPrivateFromFor,NYNH,M&H,Alice,220
+
+CompanyOperates,PRR,Bob
+LaysTileAt,PRR,9,H14,W
+CompanyDoesNotPayDividend,PRR
+PRICE_MOVES_LOG,PRR,100,G1,90,F1
+BuysTrain,PRR,3,IPO,180
+BuysPrivateFromFor,PRR,C&StL,Bob,80
+BuysPrivateFromFor,PRR,C&A,Bob,320
+
+EndOfOperatingRound,1.1
+ORWorthIncrease,Alice,1.1,95
+ORWorthIncrease,Bob,1.1,165
+ORWorthIncrease,Charlie,1.1,-245
+Has,B&O,640
+Has,NYNH,320
+Has,PRR,420
+Has,Alice,355
+Has,Bob,435
+Has,Charlie,55
+StartStockRound,2
+HasPriority,Alice
+SELL_SHARE_LOG,Alice,10,NYNH,90
+PRICE_MOVES_LOG,NYNH,90,F1,82,F2
+START_COMPANY_LOG,Alice,C&O,67,134,2,20,BANK
+SELL_SHARE_LOG,Bob,10,B&O,90
+PRICE_MOVES_LOG,B&O,90,F1,82,F2
+START_COMPANY_LOG,Bob,NYC,82,164,2,20,BANK
+PASSES,Charlie
+BUY_SHARE_LOG,Alice,10,C&O,IPO,67
+BUY_SHARE_LOG,Bob,10,NYC,IPO,82
+PASSES,Charlie
+BUY_SHARE_LOG,Alice,10,C&O,IPO,67
+BUY_SHARE_LOG,Bob,10,NYC,IPO,82
+PASSES,Charlie
+BUY_SHARE_LOG,Alice,10,C&O,IPO,67
+BUY_SHARE_LOG,Bob,10,NYC,IPO,82
+PASSES,Charlie
+BUY_SHARE_LOG,Alice,10,C&O,IPO,67
+FloatsWithCash,C&O,670
+BUY_SHARE_LOG,Bob,10,NYC,IPO,82
+FloatsWithCash,NYC,820
+PASSES,Charlie
+PASSES,Alice
+PASSES,Bob
+
+END_SR,2
+Has,B&O,640
+Has,C&O,670
+Has,NYC,820
+Has,NYNH,320
+Has,PRR,420
+Has,Alice,43
+Has,Bob,33
+Has,Charlie,55
+START_OR,2.1
+ReceivesFor,NYNH,5,SVNRR
+ReceivesFor,PRR,10,C&StL
+ReceivesFor,Charlie,15,D&H
+ReceivesFor,NYNH,20,M&H
+ReceivesFor,PRR,25,C&A
+
+CompanyOperates,PRR,Bob
+LaysTileAt,PRR,57,H16,W
+LAYS_TOKEN_ON,PRR,H16,40
+CompanyRevenue,PRR,30
+CompanyPaysOutFull,PRR,30
+Payout,Bob,18,6,10
+PRICE_MOVES_LOG,PRR,90,F1,100,G1
+
+CompanyOperates,NYC,Bob
+LaysTileAt,NYC,57,E19,SW
+CompanyDoesNotPayDividend,NYC
+PRICE_MOVES_LOG,NYC,82,G3,76,F3
+BuysTrain,NYC,3,IPO,180
+
+CompanyOperates,NYNH,Alice
+LaysTileAtFor,NYNH,57,F22,W,80
+LAYS_TOKEN_ON,NYNH,F22,40
+CompanyRevenue,NYNH,130
+CompanyPaysOutFull,NYNH,130
+Payout,Alice,65,5,10
+Payout,Charlie,13,1,10
+Payout,NYNH,13,1,10
+PRICE_MOVES_LOG,NYNH,82,F2,90,G2
+
+CompanyOperates,B&O,Charlie
+LaysTileAt,B&O,14,J14,NW
+CompanyRevenue,B&O,130
+CompanyPaysOutFull,B&O,130
+Payout,Charlie,78,6,10
+Payout,B&O,13,1,10
+PRICE_MOVES_LOG,B&O,82,F2,90,G2
+BuysTrain,B&O,3,IPO,180
+BuysPrivateFromFor,B&O,D&H,Charlie,140
+
+CompanyOperates,C&O,Alice
+LaysTileAt,C&O,8,G5,W
+CompanyDoesNotPayDividend,C&O
+PRICE_MOVES_LOG,C&O,67,G6,65,F6
+BuysTrain,C&O,3,IPO,180
+All 3-trains are sold out, 4-trains now available
+
+EndOfOperatingRound,2.1
+ORWorthIncrease,Alice,2.1,93
+ORWorthIncrease,Bob,2.1,42
+ORWorthIncrease,Charlie,2.1,232
+Has,B&O,333
+Has,C&O,490
+Has,NYC,640
+Has,NYNH,238
+Has,PRR,415
+Has,Alice,108
+Has,Bob,51
+Has,Charlie,301
+START_OR,2.2
+ReceivesFor,NYNH,5,SVNRR
+ReceivesFor,PRR,10,C&StL
+ReceivesFor,B&O,15,D&H
+ReceivesFor,NYNH,20,M&H
+ReceivesFor,PRR,25,C&A
+
+CompanyOperates,PRR,Bob
+LaysTileAt,PRR,59,H18,W
+LaysTileAt,PRR,58,B20,SW
+CompanyRevenue,PRR,60
+CompanyPaysOutFull,PRR,60
+Payout,Bob,36,6,10
+PRICE_MOVES_LOG,PRR,100,G1,112,H1
+BuysTrain,PRR,4,IPO,300
+FirstTrainBought,4
+StartOfPhase,4
+
+CompanyOperates,NYNH,Alice
+LaysTileAtFor,NYNH,54,G19,SW,80
+CompanyRevenue,NYNH,90
+CompanyPaysOutFull,NYNH,90
+Payout,Alice,45,5,10
+Payout,Charlie,9,1,10
+Payout,NYNH,9,1,10
+PRICE_MOVES_LOG,NYNH,90,G2,100,H2
+BuysTrain,NYNH,4,PRR,191
+
+CompanyOperates,B&O,Charlie
+LaysTileAt,B&O,53,I15,SW
+CompanyRevenue,B&O,110
+CompanyPaysOutFull,B&O,110
+Payout,Charlie,66,6,10
+Payout,B&O,11,1,10
+PRICE_MOVES_LOG,B&O,90,G2,100,H2
+BuysTrain,B&O,4,IPO,300
+
+CompanyOperates,NYC,Bob
+LaysTileAt,NYC,8,F18,NE
+CompanyRevenue,NYC,80
+CompanyPaysOutFull,NYC,80
+Payout,Bob,48,6,10
+PRICE_MOVES_LOG,NYC,76,F3,82,G3
+BuysTrain,NYC,4,IPO,300
+
+CompanyOperates,C&O,Alice
+LaysTileAt,C&O,8,G3,NW
+CompanyRevenue,C&O,70
+CompanyWithholds,C&O,70
+PRICE_MOVES_LOG,C&O,65,F6,58,E6
+
+EndOfOperatingRound,2.2
+ORWorthIncrease,Alice,2.2,53
+ORWorthIncrease,Bob,2.2,192
+ORWorthIncrease,Charlie,2.2,145
+Has,B&O,59
+Has,C&O,560
+Has,NYC,340
+Has,NYNH,1
+Has,PRR,341
+Has,Alice,153
+Has,Bob,135
+Has,Charlie,376
+StartStockRound,3
+HasPriority,Charlie
+BUY_SHARE_LOG,Charlie,10,NYNH,Pool,100
+SELL_SHARES_LOG,Alice,4,10,40,NYNH,400
+PRICE_MOVES_LOG,NYNH,100,H2,71,H6
+IS_NOW_PRES_OF,Charlie,NYNH
diff --git a/test/data/test/1835_NatDoubleShare.report b/test/data/test/1835_NatDoubleShare.report
index 43c8fac..a6a0a67 100644
--- a/test/data/test/1835_NatDoubleShare.report
+++ b/test/data/test/1835_NatDoubleShare.report
@@ -8,3 +8,877 @@ StartOfPhase,2
BankSizeIs,10200
StartOfInitialRound
HasPriority,T1
+BuysItemFor,T3,M5,80
+FloatsWithCash,M5,80
+BuysItemFor,T2,M1,80
+FloatsWithCash,M1,80
+BuysItemFor,T1,M3,80
+FloatsWithCash,M3,80
+BuysItemFor,T1,M6,80
+FloatsWithCash,M6,80
+BuysItemFor,T2,M2,170
+FloatsWithCash,M2,170
+BuysItemFor,T3,PRES_CERT_NAME,BY,20,184
+BuysItemFor,T1,LD,190
+ALSO_GETS,T1,PRES_CERT_NAME,SX,20
+BuysItemFor,T2,HB,160
+BuysItemFor,T3,OBB,120
+ALSO_GETS,T3,CERT_NAME,BY,10
+BuysItemFor,T1,BB,130
+BuysItemFor,T2,NF,100
+ALSO_GETS,T2,CERT_NAME,BY,10
+BuysItemFor,T3,M4,160
+FloatsWithCash,M4,160
+CannotBuyAnything,T1
+CannotBuyAnything,T2
+CannotBuyAnything,T3
+Has,M1,80
+Has,M2,170
+Has,M3,80
+Has,M4,160
+Has,M5,80
+Has,M6,80
+Has,T1,120
+Has,T2,90
+Has,T3,56
+START_OR,0.0
+ReceivesFor,T2,5,NF
+ReceivesFor,T3,10,OBB
+ReceivesFor,T1,20,LD
+ReceivesFor,T1,25,BB
+ReceivesFor,T2,30,HB
+ShortORExecuted
+Has,M1,80
+Has,M2,170
+Has,M3,80
+Has,M4,160
+Has,M5,80
+Has,M6,80
+Has,T1,165
+Has,T2,125
+Has,T3,66
+StartOfInitialRound
+HasPriority,T1
+CannotBuyAnything,T3
+BuysItemFor,T1,PfB,150
+ALSO_GETS,T1,CERT_NAME,BY,10
+FloatsWithCash,BY,460
+Has,M1,80
+Has,M2,170
+Has,M3,80
+Has,M4,160
+Has,M5,80
+Has,M6,80
+Has,BY,460
+Has,T1,15
+Has,T2,125
+Has,T3,66
+StartStockRound,1
+HasPriority,T2
+BUY_SHARE_LOG,T2,10,BY,IPO,92
+PriceIsPaidTo,92,BY
+PASSES,T3
+PASSES,T1
+PASSES,T2
+
+END_SR,1
+Has,M1,80
+Has,M2,170
+Has,M3,80
+Has,M4,160
+Has,M5,80
+Has,M6,80
+Has,BY,552
+Has,T1,15
+Has,T2,33
+Has,T3,66
+START_OR,1.1
+ReceivesFor,T2,5,NF
+ReceivesFor,T3,10,OBB
+ReceivesFor,T1,15,PfB
+ReceivesFor,T1,20,LD
+ReceivesFor,T1,25,BB
+ReceivesFor,T2,30,HB
+
+CompanyOperates,M1,T2
+LaysTileAt,M1,201,H2,SW
+CompanyDoesNotPayDividend,M1
+BuysTrain,M1,2,IPO,80
+FirstTrainBought,2
+
+CompanyOperates,M2,T2
+LaysTileAt,M2,8,E17,NW
+CompanyDoesNotPayDividend,M2
+BuysTrain,M2,2,IPO,80
+
+CompanyOperates,M3,T1
+LaysTileAt,M3,6,F14,NW
+CompanyDoesNotPayDividend,M3
+BuysTrain,M3,2,IPO,80
+
+CompanyOperates,M4,T3
+LaysTileAt,M4,57,G5,SW
+CompanyDoesNotPayDividend,M4
+BuysTrain,M4,2,IPO,80
+BuysTrain,M4,2,IPO,80
+
+CompanyOperates,M5,T3
+LaysTileAt,M5,8,D18,NE
+CompanyDoesNotPayDividend,M5
+BuysTrain,M5,2,IPO,80
+
+CompanyOperates,M6,T1
+LaysTileAt,M6,9,B10,NW
+CompanyDoesNotPayDividend,M6
+BuysTrain,M6,2,IPO,80
+
+CompanyOperates,BY,T3
+LaysTileAt,BY,202,O15,E
+LaysTileAt,BY,8,O13,NW
+CompanyDoesNotPayDividend,BY
+PRICE_MOVES_LOG,BY,92,C3,86,B3
+BuysTrain,BY,2,IPO,80
+BuysTrain,BY,2,IPO,80
+All 2-trains are sold out, 2+2-trains now available
+BuysTrain,BY,2+2,IPO,120
+FirstTrainBought,2+2
+
+EndOfOperatingRound,1.1
+ORWorthIncrease,T1,1.1,54
+ORWorthIncrease,T2,1.1,23
+ORWorthIncrease,T3,1.1,-8
+Has,M1,0
+Has,M2,90
+Has,M3,0
+Has,M4,0
+Has,M5,0
+Has,M6,0
+Has,BY,272
+Has,T1,75
+Has,T2,68
+Has,T3,76
+StartStockRound,2
+HasPriority,T3
+PASSES,T3
+PASSES,T1
+PASSES,T2
+
+END_SR,2
+Has,M1,0
+Has,M2,90
+Has,M3,0
+Has,M4,0
+Has,M5,0
+Has,M6,0
+Has,BY,272
+Has,T1,75
+Has,T2,68
+Has,T3,76
+START_OR,2.1
+ReceivesFor,T2,5,NF
+ReceivesFor,T3,10,OBB
+ReceivesFor,T1,15,PfB
+ReceivesFor,T1,20,LD
+ReceivesFor,T1,25,BB
+ReceivesFor,T2,30,HB
+
+CompanyOperates,M1,T2
+LaysTileAt,M1,9,J2,NW
+CompanyRevenue,M1,40
+CompanySplits,M1,40
+M1 receives 20
+Payout,T2,20,1,100
+
+CompanyOperates,M2,T2
+LaysTileAt,M2,8,D16,SE
+CompanyRevenue,M2,0
+CompanyDoesNotPayDividend,M2
+
+CompanyOperates,M3,T1
+LaysTileAt,M3,4,G15,NW
+CompanyRevenue,M3,40
+CompanySplits,M3,40
+M3 receives 20
+Payout,T1,20,1,100
+
+CompanyOperates,M4,T3
+LaysTileAt,M4,2,H4,NE
+CompanyRevenue,M4,30
+CompanySplits,M4,30
+M4 receives 15
+Payout,T3,15,1,100
+
+CompanyOperates,M5,T3
+LaysTileAt,M5,8,C19,E
+CompanyRevenue,M5,50
+CompanySplits,M5,50
+M5 receives 25
+Payout,T3,25,1,100
+
+CompanyOperates,M6,T1
+LaysTileAt,M6,6,A11,NW
+CompanyRevenue,M6,60
+CompanySplits,M6,60
+M6 receives 30
+Payout,T1,30,1,100
+
+CompanyOperates,BY,T3
+LaysTileAt,BY,8,N16,SW
+LaysTileAt,BY,4,M15,NW
+LaysTileAt,BY,6,N12,NW
+LAYS_TOKEN_ON,BY,L14,60
+CompanyRevenue,BY,130
+CompanyPaysOutFull,BY,130
+Payout,T1,13,1,10
+Payout,T2,26,2,10
+Payout,T3,39,3,10
+PRICE_MOVES_LOG,BY,86,B3,92,C3
+
+EndOfOperatingRound,2.1
+ORWorthIncrease,T1,2.1,129
+ORWorthIncrease,T2,2.1,93
+ORWorthIncrease,T3,2.1,107
+Has,M1,20
+Has,M2,90
+Has,M3,20
+Has,M4,15
+Has,M5,25
+Has,M6,30
+Has,BY,212
+Has,T1,198
+Has,T2,149
+Has,T3,165
+StartStockRound,3
+HasPriority,T3
+BUY_SHARE_LOG,T3,10,BY,IPO,92
+PriceIsPaidTo,92,BY
+BUY_SHARE_LOG,T1,10,BY,IPO,92
+PriceIsPaidTo,92,BY
+BUY_SHARE_LOG,T2,10,BY,IPO,92
+PriceIsPaidTo,92,BY
+PASSES,T3
+BUY_SHARE_LOG,T1,10,BY,IPO,92
+PriceIsPaidTo,92,BY
+SELL_SHARE_LOG,T1,10,BY,92
+PRICE_MOVES_LOG,BY,92,C3,88,C4
+PASSES,T2
+PASSES,T3
+SELL_SHARE_LOG,T1,10,BY,88
+PRICE_MOVES_LOG,BY,88,C4,86,C5
+BUY_SHARE_LOG,T1,10,SX,IPO,88
+PASSES,T2
+PASSES,T3
+SELL_SHARE_LOG,T1,10,BY,86
+PRICE_MOVES_LOG,BY,86,C5,82,C6
+BUY_SHARE_LOG,T1,10,SX,IPO,88
+PASSES,T2
+PASSES,T3
+BUY_SHARE_LOG,T1,10,SX,IPO,88
+FloatsWithCash,SX,440
+PASSES,T2
+PASSES,T3
+PASSES,T1
+
+END_SR,3
+Has,M1,20
+Has,M2,90
+Has,M3,20
+Has,M4,15
+Has,M5,25
+Has,M6,30
+Has,BY,580
+Has,SX,440
+Has,T1,16
+Has,T2,57
+Has,T3,73
+START_OR,3.1
+ReceivesFor,T2,5,NF
+ReceivesFor,T3,10,OBB
+ReceivesFor,T1,15,PfB
+ReceivesFor,T1,20,LD
+ReceivesFor,T1,25,BB
+ReceivesFor,T2,30,HB
+
+CompanyOperates,M1,T2
+LaysTileAt,M1,4,K3,NW
+CompanyRevenue,M1,40
+CompanySplits,M1,40
+M1 receives 20
+Payout,T2,20,1,100
+
+CompanyOperates,M2,T2
+LaysTileAtFor,M2,8,D14,NW,50
+CompanyRevenue,M2,70
+CompanySplits,M2,70
+M2 receives 35
+Payout,T2,35,1,100
+
+CompanyOperates,M3,T1
+LaysTileAt,M3,57,H16,NW
+CompanyRevenue,M3,40
+CompanySplits,M3,40
+M3 receives 20
+Payout,T1,20,1,100
+
+CompanyOperates,M4,T3
+LaysTileAt,M4,58,F6,E
+CompanyRevenue,M4,60
+CompanySplits,M4,60
+M4 receives 30
+Payout,T3,30,1,100
+
+CompanyOperates,M5,T3
+CompanyRevenue,M5,50
+CompanySplits,M5,50
+M5 receives 25
+Payout,T3,25,1,100
+
+CompanyOperates,M6,T1
+LaysTileAt,M6,58,B12,SW
+CompanyRevenue,M6,60
+CompanySplits,M6,60
+M6 receives 30
+Payout,T1,30,1,100
+
+CompanyOperates,SX,T1
+LaysTileAt,SX,56,I17,NE
+LaysTileAt,SX,202,H20,W
+CompanyDoesNotPayDividend,SX
+PRICE_MOVES_LOG,SX,88,C4,84,B4
+BuysTrain,SX,2+2,IPO,120
+PrivateCloses,LD
+BuysTrain,SX,2+2,IPO,120
+
+CompanyOperates,BY,T3
+LaysTileAt,BY,69,N10,NE
+LaysTileAt,BY,5,M9,SW
+CompanyRevenue,BY,140
+CompanyPaysOutFull,BY,140
+Payout,T2,42,3,10
+Payout,T3,56,4,10
+Payout,BY,42,3,10
+PRICE_MOVES_LOG,BY,82,C6,88,D6
+
+EndOfOperatingRound,3.1
+ORWorthIncrease,T1,3.1,-100
+ORWorthIncrease,T2,3.1,150
+ORWorthIncrease,T3,3.1,145
+Has,M1,40
+Has,M2,75
+Has,M3,40
+Has,M4,45
+Has,M5,50
+Has,M6,60
+Has,BY,622
+Has,SX,200
+Has,T1,126
+Has,T2,189
+Has,T3,194
+StartStockRound,4
+HasPriority,T2
+BUY_SHARE_LOG,T2,10,BY,Pool,88
+BUY_SHARE_LOG,T3,10,BY,Pool,88
+BUY_SHARE_LOG,T1,10,SX,IPO,88
+PriceIsPaidTo,88,SX
+BUY_SHARE_LOG,T2,10,SX,IPO,88
+PriceIsPaidTo,88,SX
+BUY_SHARE_LOG,T3,10,BY,Pool,88
+PASSES,T1
+PASSES,T2
+PASSES,T3
+
+END_SR,4
+PRICE_MOVES_LOG,BY,88,D6,90,D5
+SoldOut,BY,88,D6,90,D5
+Has,M1,40
+Has,M2,75
+Has,M3,40
+Has,M4,45
+Has,M5,50
+Has,M6,60
+Has,BY,622
+Has,SX,376
+Has,T1,38
+Has,T2,13
+Has,T3,18
+START_OR,4.1
+ReceivesFor,T2,5,NF
+ReceivesFor,T3,10,OBB
+ReceivesFor,T1,15,PfB
+ReceivesFor,T1,25,BB
+ReceivesFor,T2,30,HB
+
+CompanyOperates,M1,T2
+LaysTileAt,M1,8,L4,NW
+CompanyRevenue,M1,40
+CompanySplits,M1,40
+M1 receives 20
+Payout,T2,20,1,100
+
+CompanyOperates,M2,T2
+LaysTileAt,M2,58,B14,E
+CompanyRevenue,M2,70
+CompanySplits,M2,70
+M2 receives 35
+Payout,T2,35,1,100
+
+CompanyOperates,M3,T1
+LaysTileAt,M3,5,F10,SE
+CompanyRevenue,M3,40
+CompanySplits,M3,40
+M3 receives 20
+Payout,T1,20,1,100
+
+CompanyOperates,M4,T3
+LaysTileAt,M4,8,F8,W
+CompanyRevenue,M4,60
+CompanySplits,M4,60
+M4 receives 30
+Payout,T3,30,1,100
+
+CompanyOperates,M5,T3
+CompanyRevenue,M5,50
+CompanySplits,M5,50
+M5 receives 25
+Payout,T3,25,1,100
+
+CompanyOperates,M6,T1
+LaysTileAt,M6,58,B16,SE
+CompanyRevenue,M6,60
+CompanySplits,M6,60
+M6 receives 30
+Payout,T1,30,1,100
+
+CompanyOperates,BY,T3
+LaysTileAt,BY,8,M11,W
+LaysTileAt,BY,8,L12,SW
+CompanyRevenue,BY,140
+CompanyPaysOutFull,BY,140
+Payout,T2,56,4,10
+Payout,T3,84,6,10
+PRICE_MOVES_LOG,BY,90,D5,96,E5
+
+CompanyOperates,SX,T1
+LaysTileAt,SX,7,H18,SE
+LaysTileAt,SX,3,I15,NE
+LAYS_TOKEN_ON,SX,H20,40
+CompanyRevenue,SX,130
+CompanyPaysOutFull,SX,130
+Payout,T1,78,6,10
+Payout,T2,13,1,10
+PRICE_MOVES_LOG,SX,84,B4,88,C4
+
+EndOfOperatingRound,4.1
+ORWorthIncrease,T1,4.1,192
+ORWorthIncrease,T2,4.1,187
+ORWorthIncrease,T3,4.1,185
+Has,M1,60
+Has,M2,110
+Has,M3,60
+Has,M4,75
+Has,M5,75
+Has,M6,90
+Has,BY,622
+Has,SX,336
+Has,T1,206
+Has,T2,172
+Has,T3,167
+StartStockRound,5
+HasPriority,T1
+BUY_SHARE_LOG,T1,10,SX,IPO,88
+PriceIsPaidTo,88,SX
+BUY_SHARE_LOG,T2,10,SX,IPO,88
+PriceIsPaidTo,88,SX
+BUY_SHARE_LOG,T3,10,SX,IPO,88
+PriceIsPaidTo,88,SX
+SharesReleased,All,BA
+PASSES,T1
+SELL_SHARES_LOG,T2,4,10,40,BY,384
+PRICE_MOVES_LOG,BY,96,E5,92,E6
+START_COMPANY_LOG,T2,BA,84,168,2,20,BANK
+SharesReleased,4 10%,PR
+PASSES,T3
+BUY_SHARE_LOG,T1,10,BY,Pool,92
+BUY_SHARE_LOG,T2,10,BA,IPO,84
+PASSES,T3
+PASSES,T1
+BUY_SHARE_LOG,T2,10,BA,IPO,84
+Autopasses,T3
+Autopasses,T1
+BUY_SHARE_LOG,T2,10,BA,IPO,84
+FloatsWithCash,BA,420
+SharesReleased,All,WT
+Autopasses,T3
+Autopasses,T1
+PASSES,T2
+
+END_SR,5
+PRICE_MOVES_LOG,SX,88,C4,92,C3
+SoldOut,SX,88,C4,92,C3
+Has,M1,60
+Has,M2,110
+Has,M3,60
+Has,M4,75
+Has,M5,75
+Has,M6,90
+Has,BY,622
+Has,SX,600
+Has,BA,420
+Has,T1,26
+Has,T2,48
+Has,T3,79
+START_OR,5.1
+ReceivesFor,T2,5,NF
+ReceivesFor,T3,10,OBB
+ReceivesFor,T1,15,PfB
+ReceivesFor,T1,25,BB
+ReceivesFor,T2,30,HB
+
+CompanyOperates,M1,T2
+LaysTileAtFor,M1,201,I3,NW,50
+CompanyRevenue,M1,60
+CompanySplits,M1,60
+M1 receives 30
+Payout,T2,30,1,100
+
+CompanyOperates,M2,T2
+LaysTileAt,M2,9,C17,NW
+CompanyRevenue,M2,70
+CompanySplits,M2,70
+M2 receives 35
+Payout,T2,35,1,100
+
+CompanyOperates,M3,T1
+LaysTileAt,M3,8,E11,SW
+CompanyRevenue,M3,40
+CompanySplits,M3,40
+M3 receives 20
+Payout,T1,20,1,100
+
+CompanyOperates,M4,T3
+LaysTileAt,M4,9,E9,SW
+CompanyRevenue,M4,60
+CompanySplits,M4,60
+M4 receives 30
+Payout,T3,30,1,100
+
+CompanyOperates,M5,T3
+CompanyRevenue,M5,50
+CompanySplits,M5,50
+M5 receives 25
+Payout,T3,25,1,100
+
+CompanyOperates,M6,T1
+CompanyRevenue,M6,60
+CompanySplits,M6,60
+M6 receives 30
+Payout,T1,30,1,100
+
+CompanyOperates,BY,T3
+LaysTileAt,BY,3,K11,E
+LaysTileAt,BY,8,K13,SE
+CompanyRevenue,BY,140
+CompanyPaysOutFull,BY,140
+Payout,T1,14,1,10
+Payout,T3,84,6,10
+Payout,BY,42,3,10
+PRICE_MOVES_LOG,BY,92,E6,98,F6
+
+CompanyOperates,SX,T1
+CompanyRevenue,SX,130
+CompanyPaysOutFull,SX,130
+Payout,T1,91,7,10
+Payout,T3,13,1,10
+Payout,T2,26,2,10
+PRICE_MOVES_LOG,SX,92,C3,100,D3
+
+CompanyOperates,BA,T2
+CompanyDoesNotPayDividend,BA
+PRICE_MOVES_LOG,BA,84,B4,78,A4
+BuysTrain,BA,2+2,IPO,120
+All 2+2-trains are sold out, 3-trains now available
+BuysTrain,BA,3,IPO,180
+FirstTrainBought,3
+StartOfPhase,3
+
+EndOfOperatingRound,5.1
+ORWorthIncrease,T1,5.1,257
+ORWorthIncrease,T2,5.1,112
+ORWorthIncrease,T3,5.1,206
+Has,M1,40
+Has,M2,145
+Has,M3,80
+Has,M4,105
+Has,M5,100
+Has,M6,120
+Has,BY,664
+Has,SX,600
+Has,BA,120
+Has,T1,221
+Has,T2,174
+Has,T3,241
+StartStockRound,6
+HasPriority,T3
+START_COMPANY_LOG,T3,WT,84,168,2,20,BANK
+PASSES,T1
+BUY_SHARE_LOG,T2,10,BA,IPO,84
+PriceIsPaidTo,84,BA
+SELL_SHARE_LOG,T3,10,SX,100
+PRICE_MOVES_LOG,SX,100,D3,94,D4
+BUY_SHARE_LOG,T3,10,WT,IPO,84
+PASSES,T1
+BUY_SHARE_LOG,T2,10,BA,IPO,84
+PriceIsPaidTo,84,BA
+BUY_SHARE_LOG,T3,10,WT,IPO,84
+PASSES,T1
+PASSES,T2
+SELL_SHARE_LOG,T3,10,BY,98
+BUY_SHARE_LOG,T3,10,WT,IPO,84
+FloatsWithCash,WT,420
+SharesReleased,All,HE
+START_COMPANY_LOG,T1,HE,84,168,2,20,BANK
+PASSES,T2
+PASSES,T3
+PASSES,T1
+
+END_SR,6
+Has,M1,40
+Has,M2,145
+Has,M3,80
+Has,M4,105
+Has,M5,100
+Has,M6,120
+Has,BY,664
+Has,SX,600
+Has,BA,288
+Has,WT,420
+Has,T1,53
+Has,T2,6
+Has,T3,19
+START_OR,6.1
+ReceivesFor,T2,5,NF
+ReceivesFor,T3,10,OBB
+ReceivesFor,T1,15,PfB
+ReceivesFor,T1,25,BB
+ReceivesFor,T2,30,HB
+
+CompanyOperates,M1,T2
+LaysTileAt,M1,207,H2,E
+CompanyRevenue,M1,70
+CompanySplits,M1,70
+M1 receives 35
+Payout,T2,35,1,100
+
+CompanyOperates,M2,T2
+LaysTileAt,M2,209,E19,SE
+CompanyRevenue,M2,80
+CompanySplits,M2,80
+M2 receives 40
+Payout,T2,40,1,100
+BuysTrain,M2,3,IPO,180
+
+CompanyOperates,M3,T1
+LaysTileAt,M3,14,F14,W
+CompanyRevenue,M3,50
+CompanySplits,M3,50
+M3 receives 25
+Payout,T1,25,1,100
+BuysTrain,M3,2,M6,105
+
+CompanyOperates,M4,T3
+LaysTileAt,M4,205,G5,W
+CompanyRevenue,M4,80
+CompanySplits,M4,80
+M4 receives 40
+Payout,T3,40,1,100
+
+CompanyOperates,M5,T3
+LaysTileAt,M5,8,F18,NE
+CompanyRevenue,M5,80
+CompanySplits,M5,80
+M5 receives 40
+Payout,T3,40,1,100
+BuysTrain,M5,2,BY,140
+
+CompanyOperates,M6,T1
+LaysTileAt,M6,12,A11,W
+CompanyDoesNotPayDividend,M6
+BuysTrain,M6,2+2,SX,225
+
+CompanyOperates,BY,T3
+LaysTileAt,BY,15,M9,NW
+CompanyRevenue,BY,120
+CompanyPaysOutFull,BY,120
+Payout,T1,12,1,10
+Payout,T3,60,5,10
+Payout,BY,48,4,10
+PRICE_MOVES_LOG,BY,98,F6,106,G6
+BuysTrain,BY,3,IPO,180
+
+CompanyOperates,SX,T1
+LaysTileAt,SX,208,H20,W
+CompanyRevenue,SX,90
+CompanyPaysOutFull,SX,90
+Payout,T1,63,7,10
+Payout,T2,18,2,10
+Payout,SX,9,1,10
+PRICE_MOVES_LOG,SX,94,D4,102,E4
+BuysTrain,SX,3,IPO,180
+All 3-trains are sold out, 3+3-trains now available
+BuysTrain,SX,3+3,IPO,270
+FirstTrainBought,3+3
+
+CompanyOperates,WT,T3
+LaysTileAt,WT,204,K11,NE
+CompanyDoesNotPayDividend,WT
+PRICE_MOVES_LOG,WT,84,B4,78,A4
+BuysTrain,WT,3+3,IPO,270
+BuysTrain,WT,2,M4,1
+
+CompanyOperates,BA,T2
+LaysTileAt,BA,212,L6,SW
+LAYS_TOKEN_ON,BA,H2,80
+CompanyRevenue,BA,170
+CompanyPaysOutFull,BA,170
+Payout,T2,119,7,10
+PRICE_MOVES_LOG,BA,78,A4,84,B4
+
+EndOfOperatingRound,6.1
+ORWorthIncrease,T1,6.1,204
+ORWorthIncrease,T2,6.1,305
+ORWorthIncrease,T3,6.1,160
+Has,M1,75
+Has,M2,5
+Has,M3,0
+Has,M4,146
+Has,M5,0
+Has,M6,0
+Has,BY,672
+Has,SX,384
+Has,BA,208
+Has,WT,149
+Has,T1,193
+Has,T2,253
+Has,T3,169
+START_OR,6.2
+ReceivesFor,T2,5,NF
+ReceivesFor,T3,10,OBB
+ReceivesFor,T1,15,PfB
+ReceivesFor,T1,25,BB
+ReceivesFor,T2,30,HB
+
+CompanyOperates,M1,T2
+LaysTileAt,M1,207,I3,SW
+CompanyRevenue,M1,80
+CompanySplits,M1,80
+M1 receives 40
+Payout,T2,40,1,100
+
+CompanyOperates,M2,T2
+LaysTileAt,M2,8,F20,NE
+CompanyRevenue,M2,170
+CompanySplits,M2,170
+M2 receives 85
+Payout,T2,85,1,100
+
+CompanyOperates,M3,T1
+LaysTileAt,M3,8,D10,NE
+CompanyRevenue,M3,90
+CompanySplits,M3,90
+M3 receives 45
+Payout,T1,45,1,100
+
+CompanyOperates,M4,T3
+LaysTileAt,M4,24,D10,NE
+CompanyRevenue,M4,40
+CompanySplits,M4,40
+M4 receives 20
+Payout,T3,20,1,100
+BuysTrain,M4,2,BY,166
+
+CompanyOperates,M5,T3
+LaysTileAt,M5,23,D18,NW
+CompanyRevenue,M5,140
+CompanySplits,M5,140
+M5 receives 70
+Payout,T3,70,1,100
+
+CompanyOperates,M6,T1
+LaysTileAt,M6,203,B12,W
+CompanyRevenue,M6,80
+CompanySplits,M6,80
+M6 receives 40
+Payout,T1,40,1,100
+
+CompanyOperates,BY,T3
+LaysTileAt,BY,8,J10,SE
+LAYS_TOKEN_ON,BY,J8,120
+CompanyRevenue,BY,160
+CompanyPaysOutFull,BY,160
+Payout,T1,16,1,10
+Payout,T3,80,5,10
+Payout,BY,64,4,10
+PRICE_MOVES_LOG,BY,106,G6,114,G5
+BuysTrain,BY,2,M5,1
+
+CompanyOperates,SX,T1
+LaysTileAt,SX,206,H16,SW
+LAYS_TOKEN_ON,SX,E19,60
+CompanyRevenue,SX,320
+CompanyPaysOutFull,SX,320
+Payout,T1,224,7,10
+Payout,T2,64,2,10
+Payout,SX,32,1,10
+PRICE_MOVES_LOG,SX,102,E4,112,F4
+
+CompanyOperates,BA,T2
+LaysTileAt,BA,9,K5,NW
+CompanyRevenue,BA,190
+CompanyPaysOutFull,BA,190
+Payout,T2,133,7,10
+PRICE_MOVES_LOG,BA,84,B4,88,C4
+
+CompanyOperates,WT,T3
+LaysTileAt,WT,1,L8,W
+CompanyRevenue,WT,160
+CompanyPaysOutFull,WT,160
+Payout,T3,80,5,10
+PRICE_MOVES_LOG,WT,78,A4,84,B4
+
+EndOfOperatingRound,6.2
+ORWorthIncrease,T1,6.2,443
+ORWorthIncrease,T2,6.2,405
+ORWorthIncrease,T3,6.2,330
+Has,M1,115
+Has,M2,90
+Has,M3,45
+Has,M4,0
+Has,M5,71
+Has,M6,40
+Has,BY,781
+Has,SX,356
+Has,BA,208
+Has,WT,149
+Has,T1,558
+Has,T2,610
+Has,T3,429
+StartStockRound,7
+HasPriority,T2
+BUY_SHARE_LOG,T2,10,PR,IPO,154
+BUY_SHARE_LOG,T3,10,PR,IPO,154
+BUY_SHARE_LOG,T1,10,PR,IPO,154
+BUY_SHARE_LOG,T2,10,PR,IPO,154
+BUY_SHARE_LOG,T3,10,BY,Pool,114
+BUY_SHARE_LOG,T1,10,SX,Pool,112
+BUY_SHARE_LOG,T2,10,BY,Pool,114
+BUY_SHARE_LOG,T3,10,BA,IPO,84
+PriceIsPaidTo,84,BA
+PASSES,T1
+PASSES,T2
+SELL_SHARE_LOG,T3,10,BY,114
+PRICE_MOVES_LOG,BY,114,G5,106,G6
+BUY_SHARE_LOG,T3,20,BA,IPO,168
+PriceIsPaidTo,168,BA
+PASSES,T1
+SELL_SHARE_LOG,T2,10,BY,106
+BUY_SHARE_LOG,T2,20,BA,T3,264
diff --git a/test/data/test/1835_NatSingleShare.report b/test/data/test/1835_NatSingleShare.report
index 43c8fac..f0b1381 100644
--- a/test/data/test/1835_NatSingleShare.report
+++ b/test/data/test/1835_NatSingleShare.report
@@ -8,3 +8,69 @@ StartOfPhase,2
BankSizeIs,10200
StartOfInitialRound
HasPriority,T1
+BuysItemFor,T3,M5,80
+FloatsWithCash,M5,80
+BuysItemFor,T1,M1,80
+FloatsWithCash,M1,80
+BuysItemFor,T2,M3,80
+FloatsWithCash,M3,80
+BuysItemFor,T3,M6,80
+FloatsWithCash,M6,80
+BuysItemFor,T1,M2,170
+FloatsWithCash,M2,170
+BuysItemFor,T2,PRES_CERT_NAME,BY,20,184
+BuysItemFor,T3,LD,190
+ALSO_GETS,T3,PRES_CERT_NAME,SX,20
+BuysItemFor,T1,HB,160
+BuysItemFor,T2,OBB,120
+ALSO_GETS,T2,CERT_NAME,BY,10
+BuysItemFor,T3,BB,130
+BuysItemFor,T1,NF,100
+ALSO_GETS,T1,CERT_NAME,BY,10
+BuysItemFor,T2,M4,160
+FloatsWithCash,M4,160
+CannotBuyAnything,T3
+CannotBuyAnything,T1
+CannotBuyAnything,T2
+Has,M1,80
+Has,M2,170
+Has,M3,80
+Has,M4,160
+Has,M5,80
+Has,M6,80
+Has,T1,90
+Has,T2,56
+Has,T3,120
+START_OR,0.0
+ReceivesFor,T1,5,NF
+ReceivesFor,T2,10,OBB
+ReceivesFor,T3,20,LD
+ReceivesFor,T3,25,BB
+ReceivesFor,T1,30,HB
+ShortORExecuted
+Has,M1,80
+Has,M2,170
+Has,M3,80
+Has,M4,160
+Has,M5,80
+Has,M6,80
+Has,T1,125
+Has,T2,66
+Has,T3,165
+StartOfInitialRound
+HasPriority,T3
+BuysItemFor,T3,PfB,150
+ALSO_GETS,T3,CERT_NAME,BY,10
+FloatsWithCash,BY,460
+Has,M1,80
+Has,M2,170
+Has,M3,80
+Has,M4,160
+Has,M5,80
+Has,M6,80
+Has,BY,460
+Has,T1,125
+Has,T2,66
+Has,T3,15
+StartStockRound,1
+HasPriority,T1
diff --git a/test/data/test/1835_SwapPresForDoubleShare.report b/test/data/test/1835_SwapPresForDoubleShare.report
index 43c8fac..f0b1381 100644
--- a/test/data/test/1835_SwapPresForDoubleShare.report
+++ b/test/data/test/1835_SwapPresForDoubleShare.report
@@ -8,3 +8,69 @@ StartOfPhase,2
BankSizeIs,10200
StartOfInitialRound
HasPriority,T1
+BuysItemFor,T3,M5,80
+FloatsWithCash,M5,80
+BuysItemFor,T1,M1,80
+FloatsWithCash,M1,80
+BuysItemFor,T2,M3,80
+FloatsWithCash,M3,80
+BuysItemFor,T3,M6,80
+FloatsWithCash,M6,80
+BuysItemFor,T1,M2,170
+FloatsWithCash,M2,170
+BuysItemFor,T2,PRES_CERT_NAME,BY,20,184
+BuysItemFor,T3,LD,190
+ALSO_GETS,T3,PRES_CERT_NAME,SX,20
+BuysItemFor,T1,HB,160
+BuysItemFor,T2,OBB,120
+ALSO_GETS,T2,CERT_NAME,BY,10
+BuysItemFor,T3,BB,130
+BuysItemFor,T1,NF,100
+ALSO_GETS,T1,CERT_NAME,BY,10
+BuysItemFor,T2,M4,160
+FloatsWithCash,M4,160
+CannotBuyAnything,T3
+CannotBuyAnything,T1
+CannotBuyAnything,T2
+Has,M1,80
+Has,M2,170
+Has,M3,80
+Has,M4,160
+Has,M5,80
+Has,M6,80
+Has,T1,90
+Has,T2,56
+Has,T3,120
+START_OR,0.0
+ReceivesFor,T1,5,NF
+ReceivesFor,T2,10,OBB
+ReceivesFor,T3,20,LD
+ReceivesFor,T3,25,BB
+ReceivesFor,T1,30,HB
+ShortORExecuted
+Has,M1,80
+Has,M2,170
+Has,M3,80
+Has,M4,160
+Has,M5,80
+Has,M6,80
+Has,T1,125
+Has,T2,66
+Has,T3,165
+StartOfInitialRound
+HasPriority,T3
+BuysItemFor,T3,PfB,150
+ALSO_GETS,T3,CERT_NAME,BY,10
+FloatsWithCash,BY,460
+Has,M1,80
+Has,M2,170
+Has,M3,80
+Has,M4,160
+Has,M5,80
+Has,M6,80
+Has,BY,460
+Has,T1,125
+Has,T2,66
+Has,T3,15
+StartStockRound,1
+HasPriority,T1
|