Skip to content

Commit

Permalink
Merge pull request #2041 from planetarium/improve/has-execute-2
Browse files Browse the repository at this point in the history
Optimize HackAndSlash.Execute #2
  • Loading branch information
ipdae authored Jul 28, 2023
2 parents 2175936 + afe0623 commit 63ca3c9
Show file tree
Hide file tree
Showing 24 changed files with 520 additions and 384 deletions.
63 changes: 0 additions & 63 deletions .Lib9c.Tests/Action/BuyMultipleTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,8 @@
{
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Numerics;
using System.Runtime.Serialization.Formatters.Binary;
using Libplanet.Action.State;
using Libplanet.Crypto;
using Libplanet.Types.Assets;
Expand Down Expand Up @@ -609,67 +607,6 @@ public void ExecuteThrowShopItemExpiredError()
Assert.True(isAllFailed);
}

[Fact]
public void SerializeWithDotnetAPI()
{
var sellerAvatarAddress = new PrivateKey().ToAddress();
var sellerAgentAddress = new PrivateKey().ToAddress();
CreateAvatarState(sellerAgentAddress, sellerAvatarAddress);

IAccountStateDelta previousStates = _initialState;
var shopState = previousStates.GetShopState();

var productId = Guid.NewGuid();
var equipment = ItemFactory.CreateItemUsable(
_tableSheets.EquipmentItemSheet.First,
Guid.NewGuid(),
0);
shopState.Register(new ShopItem(
sellerAgentAddress,
sellerAvatarAddress,
productId,
new FungibleAssetValue(_goldCurrencyState.Currency, 100, 0),
100,
equipment));
shopState.Register(new ShopItem(
sellerAgentAddress,
sellerAvatarAddress,
Guid.NewGuid(),
new FungibleAssetValue(_goldCurrencyState.Currency, 100, 0),
100,
equipment));
var products = shopState.Products.Values
.Select(p => new BuyMultiple.PurchaseInfo(
p.ProductId,
p.SellerAgentAddress,
p.SellerAvatarAddress))
.ToList();

previousStates = previousStates
.SetState(Addresses.Shop, shopState.Serialize());

var action = new BuyMultiple
{
buyerAvatarAddress = _buyerAvatarAddress,
purchaseInfos = products,
};
action.Execute(new ActionContext()
{
BlockIndex = 1,
PreviousState = previousStates,
Random = new TestRandom(),
Signer = _buyerAgentAddress,
});

var formatter = new BinaryFormatter();
using var ms = new MemoryStream();
formatter.Serialize(ms, action);
ms.Seek(0, SeekOrigin.Begin);

var deserialized = (BuyMultiple)formatter.Deserialize(ms);
Assert.Equal(action.PlainValue, deserialized.PlainValue);
}

private (AvatarState AvatarState, AgentState AgentState) CreateAvatarState(
Address agentAddress, Address avatarAddress)
{
Expand Down
18 changes: 0 additions & 18 deletions .Lib9c.Tests/Model/Item/ArmorTest.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
namespace Lib9c.Tests.Model.Item
{
using System;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using Nekoyume.Model.Item;
using Nekoyume.TableData;
using Xunit;
Expand All @@ -30,21 +28,5 @@ public void Serialize()

Assert.Equal(costume, deserialized);
}

[Fact]
public void SerializeWithDotNetAPI()
{
Assert.NotNull(_armorRow);

var costume = new Armor(_armorRow, Guid.NewGuid(), 0);
var formatter = new BinaryFormatter();
using var ms = new MemoryStream();
formatter.Serialize(ms, costume);
ms.Seek(0, SeekOrigin.Begin);

var deserialized = (Armor)formatter.Deserialize(ms);

Assert.Equal(costume, deserialized);
}
}
}
18 changes: 0 additions & 18 deletions .Lib9c.Tests/Model/Item/BeltTest.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
namespace Lib9c.Tests.Model.Item
{
using System;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using Nekoyume.Model.Item;
using Nekoyume.TableData;
using Xunit;
Expand All @@ -30,21 +28,5 @@ public void Serialize()

Assert.Equal(costume, deserialized);
}

[Fact]
public void SerializeWithDotNetAPI()
{
Assert.NotNull(_beltRow);

var costume = new Belt(_beltRow, Guid.NewGuid(), 0);
var formatter = new BinaryFormatter();
using var ms = new MemoryStream();
formatter.Serialize(ms, costume);
ms.Seek(0, SeekOrigin.Begin);

var deserialized = (Belt)formatter.Deserialize(ms);

Assert.Equal(costume, deserialized);
}
}
}
18 changes: 0 additions & 18 deletions .Lib9c.Tests/Model/Item/ConsumableTest.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
namespace Lib9c.Tests.Model.Item
{
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using Nekoyume.Model.Item;
using Nekoyume.TableData;
using Xunit;
Expand All @@ -29,22 +27,6 @@ public void Serialize()
Assert.Equal(consumable, deserialized);
}

[Fact]
public void SerializeWithDotNetAPI()
{
Assert.NotNull(_consumableRow);

var consumable = new Consumable(_consumableRow, Guid.NewGuid(), 0);
var formatter = new BinaryFormatter();
using var ms = new MemoryStream();
formatter.Serialize(ms, consumable);
ms.Seek(0, SeekOrigin.Begin);

var deserialized = (Consumable)formatter.Deserialize(ms);

Assert.Equal(consumable, deserialized);
}

[Fact]
public void Update()
{
Expand Down
22 changes: 0 additions & 22 deletions .Lib9c.Tests/Model/Item/EquipmentTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ namespace Lib9c.Tests.Model.Item
{
using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using Nekoyume.Model.Item;
using Nekoyume.TableData;
using Xunit;
Expand Down Expand Up @@ -43,26 +41,6 @@ public void Serialize()
Assert.Equal(serialized, reSerialized);
}

[Fact]
public void SerializeWithDotNetAPI()
{
Assert.NotNull(_equipmentRow);

var costume = new Equipment(_equipmentRow, Guid.NewGuid(), 0);
var formatter = new BinaryFormatter();
using var ms = new MemoryStream();
formatter.Serialize(ms, costume);
ms.Seek(0, SeekOrigin.Begin);
var serialized = ms.ToArray();
var deserialized = (Equipment)formatter.Deserialize(ms);
ms.Seek(0, SeekOrigin.Begin);
formatter.Serialize(ms, deserialized);
var reSerialized = ms.ToArray();

Assert.Equal(costume, deserialized);
Assert.Equal(serialized, reSerialized);
}

[Fact]
public void LevelUp()
{
Expand Down
20 changes: 0 additions & 20 deletions .Lib9c.Tests/Model/Item/InventoryTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@
{
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using Lib9c.Tests.Action;
using Nekoyume.Model.Item;
using Nekoyume.TableData;
Expand Down Expand Up @@ -35,24 +33,6 @@ public void Serialize()
Assert.Equal(inventory, deserialized);
}

[Fact]
public void Serialize_With_DotNet_Api()
{
var inventory = new Inventory();
var row = TableSheets.EquipmentItemSheet.First;
var itemUsable = ItemFactory.CreateItemUsable(row, Guid.NewGuid(), 0);
inventory.AddItem(itemUsable);
var row2 = TableSheets.MaterialItemSheet.First;
var material = ItemFactory.CreateMaterial(row2);
inventory.AddItem(material, 1, new OrderLock(Guid.NewGuid()));
var formatter = new BinaryFormatter();
using var ms = new MemoryStream();
formatter.Serialize(ms, inventory);
ms.Seek(0, SeekOrigin.Begin);
var deserialized = (Inventory)formatter.Deserialize(ms);
Assert.Equal(inventory, deserialized);
}

// Add
[Fact]
public Inventory AddItem_Consumable()
Expand Down
18 changes: 0 additions & 18 deletions .Lib9c.Tests/Model/Item/NecklaceTest.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
namespace Lib9c.Tests.Model.Item
{
using System;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using Nekoyume.Model.Item;
using Nekoyume.TableData;
using Xunit;
Expand All @@ -30,21 +28,5 @@ public void Serialize()

Assert.Equal(costume, deserialized);
}

[Fact]
public void SerializeWithDotNetAPI()
{
Assert.NotNull(_necklaceRow);

var costume = new Necklace(_necklaceRow, Guid.NewGuid(), 0);
var formatter = new BinaryFormatter();
using var ms = new MemoryStream();
formatter.Serialize(ms, costume);
ms.Seek(0, SeekOrigin.Begin);

var deserialized = (Necklace)formatter.Deserialize(ms);

Assert.Equal(costume, deserialized);
}
}
}
18 changes: 0 additions & 18 deletions .Lib9c.Tests/Model/Item/ShopItemTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ namespace Lib9c.Tests.Model.Item
{
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using Bencodex.Types;
using Libplanet.Crypto;
using Libplanet.Types.Assets;
Expand Down Expand Up @@ -38,22 +36,6 @@ public void Serialize()
}
}

[Fact]
public void Serialize_With_DotNet_Api()
{
foreach (var shopItem in GetShopItems())
{
var formatter = new BinaryFormatter();
using var ms = new MemoryStream();
formatter.Serialize(ms, shopItem);
ms.Seek(0, SeekOrigin.Begin);

var deserialized = (ShopItem)formatter.Deserialize(ms);

Assert.Equal(shopItem, deserialized);
}
}

// NOTE: `SerializeBackup1()` only tests with `ShopItem` containing `Equipment`.
[Fact]
public void SerializeBackup1()
Expand Down
9 changes: 0 additions & 9 deletions .Lib9c.Tests/Model/ItemGradeQuestTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,6 @@ public void Serialize()
var des = new ItemGradeQuest((Dictionary)quest.Serialize());

Assert.Equal(expected, des.ItemIds);

var formatter = new BinaryFormatter();
using var ms = new MemoryStream();
formatter.Serialize(ms, quest);

ms.Seek(0, SeekOrigin.Begin);
var deserialized = (ItemGradeQuest)formatter.Deserialize(ms);

Assert.Equal(quest.ItemIds, deserialized.ItemIds);
}
}
}
9 changes: 0 additions & 9 deletions .Lib9c.Tests/Model/ItemTypeCollectQuestTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,6 @@ public void Serialize()
var des = new ItemTypeCollectQuest((Dictionary)quest.Serialize());

Assert.Equal(expected, des.ItemIds);

var formatter = new BinaryFormatter();
using var ms = new MemoryStream();
formatter.Serialize(ms, quest);

ms.Seek(0, SeekOrigin.Begin);
var deserialized = (ItemTypeCollectQuest)formatter.Deserialize(ms);

Assert.Equal(quest.ItemIds, deserialized.ItemIds);
}
}
}
19 changes: 10 additions & 9 deletions .Lib9c.Tests/Model/QuestRewardTest.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
namespace Lib9c.Tests.Model
{
using System;
using System.Collections.Generic;
using System.Linq;
using Bencodex.Types;
using Nekoyume.Model.Quest;
using Xunit;
Expand All @@ -16,19 +18,18 @@ public void Serialize()
[1] = 1,
});

Assert.Equal(
new Dictionary<int, int>()
{
[1] = 1,
[2] = 1,
},
reward.ItemMap
);
var expected = new[]
{
new Tuple<int, int>(1, 1),
new Tuple<int, int>(2, 1),
};

Assert.Equal(expected.OrderBy(t => t.Item1), reward.ItemMap.OrderBy(t => t.Item1));

var serialized = reward.Serialize();
var des = new QuestReward((Dictionary)serialized);

Assert.Equal(reward.ItemMap, des.ItemMap);
Assert.Equal(reward.ItemMap.OrderBy(t => t.Item1), des.ItemMap.OrderBy(t => t.Item1));

Assert.Equal(serialized, des.Serialize());
}
Expand Down
7 changes: 0 additions & 7 deletions Lib9c/Action/AccountStateExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,6 @@ public static bool TryGetState<T>(this IAccountState states, Address address, ou
return true;
}

Log.Error(
"Expected a {0}, but got invalid state ({1}): ({2}) {3}",
typeof(T).Name,
address.ToHex(),
raw?.GetType().Name,
raw
);
result = default;
return false;
}
Expand Down
Loading

0 comments on commit 63ca3c9

Please sign in to comment.