Skip to content

Commit c3ec931

Browse files
committed
Added test cases Process.
1 parent eadf7f3 commit c3ec931

File tree

2 files changed

+108
-3
lines changed

2 files changed

+108
-3
lines changed

tests/src/EventStreamTest.h

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,56 @@ TYPED_TEST_P(EventStreamTest, EventTransform)
269269
ASSERT_TRUE(std::find(results.begin(), results.end(), "HELLO VORLD") != results.end());
270270
}
271271

272+
///////////////////////////////////////////////////////////////////////////////////////////////////
273+
/// EventProcess test
274+
///////////////////////////////////////////////////////////////////////////////////////////////////
275+
TYPED_TEST_P(EventStreamTest, EventProcess)
276+
{
277+
using D = typename EventProcess::MyDomain;
278+
279+
std::vector<float> results;
280+
281+
auto in1 = MakeEventSource<D,int>();
282+
auto in2 = MakeEventSource<D,int>();
283+
284+
auto merged = Merge(in1, in2);
285+
int callCount = 0;
286+
287+
auto processed = Process<float>(merged,
288+
[&] (EventRange<int> range, EventInserter<float> out)
289+
{
290+
for (const auto& e : range)
291+
{
292+
*out = 0.1f * e;
293+
*out = 1.5f * e;
294+
}
295+
296+
callCount++;
297+
});
298+
299+
Observe(processed,
300+
[&] (float s)
301+
{
302+
results.push_back(s);
303+
});
304+
305+
DoTransaction<D>([&] {
306+
in1 << 10 << 20;
307+
});
308+
309+
in2 << 30;
310+
311+
ASSERT_EQ(results.size(), 6);
312+
ASSERT_EQ(callCount, 2);
313+
314+
ASSERT_EQ(results[0], 1.0f);
315+
ASSERT_EQ(results[1], 15.0f);
316+
ASSERT_EQ(results[2], 2.0f);
317+
ASSERT_EQ(results[3], 30.0f);
318+
ASSERT_EQ(results[4], 3.0f);
319+
ASSERT_EQ(results[5], 45.0f);
320+
}
321+
272322
///////////////////////////////////////////////////////////////////////////////////////////////////
273323
REGISTER_TYPED_TEST_CASE_P
274324
(
@@ -278,7 +328,8 @@ REGISTER_TYPED_TEST_CASE_P
278328
EventMerge2,
279329
EventMerge3,
280330
EventFilter,
281-
EventTransform
331+
EventTransform,
332+
EventProcess
282333
);
283334

284335
} // ~namespace

tests/src/OperationsTest.h

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -847,7 +847,7 @@ TYPED_TEST_P(OperationsTest, SyncedEventFilter1)
847847
}
848848

849849
///////////////////////////////////////////////////////////////////////////////////////////////////
850-
/// EventTransform1
850+
/// SyncedEventTransform1
851851
///////////////////////////////////////////////////////////////////////////////////////////////////
852852
TYPED_TEST_P(OperationsTest, SyncedEventTransform1)
853853
{
@@ -892,6 +892,59 @@ TYPED_TEST_P(OperationsTest, SyncedEventTransform1)
892892
ASSERT_TRUE(std::find(results.begin(), results.end(), "HELLO VORLD, Alice Anderson") != results.end());
893893
}
894894

895+
///////////////////////////////////////////////////////////////////////////////////////////////////
896+
/// SyncedEventProcess1
897+
///////////////////////////////////////////////////////////////////////////////////////////////////
898+
TYPED_TEST_P(OperationsTest, SyncedEventProcess1)
899+
{
900+
using D = typename SyncedEventProcess1::MyDomain;
901+
902+
std::vector<float> results;
903+
904+
auto in1 = MakeEventSource<D,int>();
905+
auto in2 = MakeEventSource<D,int>();
906+
907+
auto mult = MakeVar<D>(10);
908+
909+
auto merged = Merge(in1, in2);
910+
int callCount = 0;
911+
912+
auto processed = Process<float>(merged,
913+
With(mult),
914+
[&] (EventRange<int> range, EventInserter<float> out, int mult)
915+
{
916+
for (const auto& e : range)
917+
{
918+
*out = 0.1f * e * mult;
919+
*out = 1.5f * e * mult;
920+
}
921+
922+
callCount++;
923+
});
924+
925+
Observe(processed,
926+
[&] (float s)
927+
{
928+
results.push_back(s);
929+
});
930+
931+
DoTransaction<D>([&] {
932+
in1 << 10 << 20;
933+
});
934+
935+
in2 << 30;
936+
937+
ASSERT_EQ(results.size(), 6);
938+
ASSERT_EQ(callCount, 2);
939+
940+
ASSERT_EQ(results[0], 10.0f);
941+
ASSERT_EQ(results[1], 150.0f);
942+
ASSERT_EQ(results[2], 20.0f);
943+
ASSERT_EQ(results[3], 300.0f);
944+
ASSERT_EQ(results[4], 30.0f);
945+
ASSERT_EQ(results[5], 450.0f);
946+
}
947+
895948
///////////////////////////////////////////////////////////////////////////////////////////////////
896949
REGISTER_TYPED_TEST_CASE_P
897950
(
@@ -911,7 +964,8 @@ REGISTER_TYPED_TEST_CASE_P
911964
SyncedIterate3,
912965
SyncedIterate4,
913966
SyncedEventFilter1,
914-
SyncedEventTransform1
967+
SyncedEventTransform1,
968+
SyncedEventProcess1
915969
);
916970

917971
} // ~namespace

0 commit comments

Comments
 (0)