MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / CopyStructs

Method CopyStructs

projects/CSharp/Tests/Clone.cs:12–60  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

10 public class TestClone
11 {
12 [Fact(DisplayName = "Clone structs")]
13 public void CopyStructs()
14 {
15 // Create a new account with some orders
16 var account1 = Account.Default;
17 account1.id = 1;
18 account1.name = "Test";
19 account1.state = State.good;
20 account1.wallet.currency = "USD";
21 account1.wallet.amount = 1000.0;
22 account1.asset = new Balance("EUR", 100.0);
23 account1.orders.Add(new Order(1, "EURUSD", OrderSide.buy, OrderType.market, 1.23456, 1000.0));
24 account1.orders.Add(new Order(2, "EURUSD", OrderSide.sell, OrderType.limit, 1.0, 100.0));
25 account1.orders.Add(new Order(3, "EURUSD", OrderSide.buy, OrderType.stop, 1.5, 10.0));
26
27 // Clone the account
28 Account account2 = account1.Clone();
29
30 // Clear the source account
31 account1 = Account.Default;
32
33 Assert.True(account2.id == 1);
34 Assert.True(account2.name == "Test");
35 Assert.True(account2.state.HasFlags(State.good));
36 Assert.True(account2.wallet.currency == "USD");
37 Assert.True(account2.wallet.amount == 1000.0);
38 Assert.True(account2.asset.HasValue);
39 Assert.True(account2.asset.Value.currency == "EUR");
40 Assert.True(account2.asset.Value.amount == 100.0);
41 Assert.True(account2.orders.Count == 3);
42 Assert.True(account2.orders[0].id == 1);
43 Assert.True(account2.orders[0].symbol == "EURUSD");
44 Assert.True(account2.orders[0].side == OrderSide.buy);
45 Assert.True(account2.orders[0].type == OrderType.market);
46 Assert.True(account2.orders[0].price == 1.23456);
47 Assert.True(account2.orders[0].volume == 1000.0);
48 Assert.True(account2.orders[1].id == 2);
49 Assert.True(account2.orders[1].symbol == "EURUSD");
50 Assert.True(account2.orders[1].side == OrderSide.sell);
51 Assert.True(account2.orders[1].type == OrderType.limit);
52 Assert.True(account2.orders[1].price == 1.0);
53 Assert.True(account2.orders[1].volume == 100.0);
54 Assert.True(account2.orders[2].id == 3);
55 Assert.True(account2.orders[2].symbol == "EURUSD");
56 Assert.True(account2.orders[2].side == OrderSide.buy);
57 Assert.True(account2.orders[2].type == OrderType.stop);
58 Assert.True(account2.orders[2].price == 1.5);
59 Assert.True(account2.orders[2].volume == 10.0);
60 }
61 }
62}

Callers

nothing calls this directly

Calls 3

AddMethod · 0.45
CloneMethod · 0.45
HasFlagsMethod · 0.45

Tested by

no test coverage detected