MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / TEST

Function TEST

source/test/net_states_test.cpp:7–61  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5using namespace Star;
6
7TEST(NetElements, DataRounding) {
8 NetElementFloat masterField1;
9 NetElementFloat masterField2;
10
11 NetElementTop<NetElementGroup> master;
12 master.addNetElement(&masterField1);
13 master.addNetElement(&masterField2);
14
15 masterField1.setFixedPointBase(0.1f);
16 masterField2.setFixedPointBase(0.5);
17
18 masterField1.set(2.1999f);
19 masterField2.set(100.04);
20
21 // Check to make sure encoded data is actually sent with the expected
22 // limitations to the client side.
23
24 NetElementFloat slaveField1;
25 NetElementFloat slaveField2;
26
27 NetElementTop<NetElementGroup> slave;
28 slave.addNetElement(&slaveField1);
29 slave.addNetElement(&slaveField2);
30
31 slaveField1.setFixedPointBase(0.1f);
32 slaveField2.setFixedPointBase(0.5);
33
34 auto masterUpdate1 = master.writeNetState();
35 slave.readNetState(masterUpdate1.first);
36
37 EXPECT_LT(fabs(slaveField1.get() - 2.2f), 0.00001f);
38 EXPECT_LT(fabs(slaveField2.get() - 100), 0.0000001);
39
40 // Make sure that jittering a fixed point or limited value doesn't cause
41 // extra deltas
42
43 masterField1.set(2.155f);
44 masterField1.set(2.24f);
45 masterField2.set(99.96);
46 masterField2.set(100.00);
47
48 auto masterUpdate2 = master.writeNetState(masterUpdate1.second);
49 EXPECT_TRUE(masterUpdate2.first.empty());
50 slave.readNetState(masterUpdate2.first);
51
52 masterField1.set(10.0f);
53 masterField2.set(50.0f);
54
55 auto masterUpdate3 = master.writeNetState(masterUpdate2.second);
56 EXPECT_FALSE(masterUpdate3.first.empty());
57 slave.readNetState(masterUpdate3.first);
58
59 EXPECT_LT(fabs(slaveField1.get() - 10.0f), 0.00001f);
60 EXPECT_LT(fabs(slaveField2.get() - 50.0f), 0.0000001);
61}
62
63TEST(NetElements, DirectWriteRead) {
64 NetElementUInt masterField1;

Callers

nothing calls this directly

Calls 15

setFixedPointBaseMethod · 0.80
pullOccurrencesMethod · 0.80
ignoreOccurrencesMethod · 0.80
setInterpolatorMethod · 0.80
pullOccurredMethod · 0.80
netElementIdsMethod · 0.80
getDataMethod · 0.80
getNetElementMethod · 0.80
removeNetElementMethod · 0.80
addNetElementMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected