76dfe8d5

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Do not let a zero-amount lot posting declare a price

The acquisition test matched Positive, which includes a zero amount, so a
posting of no shares at all counted as a trade and its rate went into the price
graph.  With a later timestamp it then won over the rate a real purchase had
set: lot-zero.cent valued one share at 475.00 CHF instead of 95.00.

Also corrects the combineLots property that let this class of thing through in
its own right.  MultiAccount drops a key whose balance reaches zero, so the
result is not keyed by every underlying currency of the input, and random
amounts never cancel exactly, so QuickCheck agreed.  Stated per currency now,
with a fixed case for the cancellation.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 0s 1s 1s 1s 0s
Eval 1s 14s 14s 16s 0s
Build 13s 6m49s 2m23s 2m37s 0s
Suite 0s 7m06s 2m37s 2m37s 0s

Timeline

0s20s40s1m1m20s1m40s2m2m20s