Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize HackAndSlash.Execute #2 #2041

Merged
merged 16 commits into from
Jul 28, 2023
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
Loading