private void CanSplitAssetMoneyCore(AssetId asset, long amount, int parts) { AssetMoney money = new AssetMoney(asset, amount); var splitted = money.Split(parts).ToArray(); Assert.True(splitted.Length == parts); Assert.True(splitted.Sum(asset) == money); var groups = splitted.Select(s => s.Quantity).GroupBy(o => o); var differentValues = groups.Count(); Assert.True(differentValues == 1 || differentValues == 2); }
public void CanSplitMoneyBag() { var gold = new AssetId(new Key()); var bag = new MoneyBag(); bag += Money.Coins(12); bag += new AssetMoney(gold, 10); MoneyBag[] splitted = bag.Split(12).ToArray(); Assert.Equal(Money.Coins(1.0m), splitted[0].GetAmount(null)); Assert.Equal(new AssetMoney(gold, 1), splitted[0].GetAmount(gold)); Assert.Equal(new AssetMoney(gold, 0), splitted[11].GetAmount(gold)); }
public void CanSplitMoneyBag() { var gold = new AssetId(new Key()); MoneyBag bag = new MoneyBag(); bag += Money.Coins(12); bag += new AssetMoney(gold, 10); var splitted = bag.Split(12).ToArray(); Assert.Equal(Money.Coins(1.0m), splitted[0].GetAmount(null)); Assert.Equal(new AssetMoney(gold, 1), splitted[0].GetAmount(gold)); Assert.Equal(new AssetMoney(gold, 0), splitted[11].GetAmount(gold)); }