|
@@ -3,7 +3,7 @@ using Invercargill;
|
|
|
void parallel_tests() {
|
|
|
|
|
|
|
|
|
- Test.add_func("/invercargill/operator/parallel/task", () => {
|
|
|
+ Test.add_func("/invercargill/operator/parallel/select", () => {
|
|
|
var items = ate(new ParallelObj[] {
|
|
|
new ParallelObj(),
|
|
|
new ParallelObj(),
|
|
@@ -15,11 +15,53 @@ void parallel_tests() {
|
|
|
new ParallelObj(),
|
|
|
});
|
|
|
|
|
|
- var result = items.parallel<ParallelObj>(o => o.big_process(), 4).to_sequence();
|
|
|
+ var result = items.parallel_select<ParallelObj>(o => o.big_process(), 4).to_sequence();
|
|
|
|
|
|
assert_true(result.all(o => o.processed));
|
|
|
});
|
|
|
|
|
|
+ Test.add_func("/invercargill/operator/parallel/iterate", () => {
|
|
|
+ var items = ate(new ParallelObj[] {
|
|
|
+ new ParallelObj(),
|
|
|
+ new ParallelObj(),
|
|
|
+ new ParallelObj(),
|
|
|
+ new ParallelObj(),
|
|
|
+ new ParallelObj(),
|
|
|
+ new ParallelObj(),
|
|
|
+ new ParallelObj(),
|
|
|
+ new ParallelObj(),
|
|
|
+ });
|
|
|
+
|
|
|
+ var items_processed = items.parallel_iterate(o => o.big_process(), 4);
|
|
|
+
|
|
|
+ assert_true(items_processed == 8);
|
|
|
+ assert_true(items.all(o => o.processed));
|
|
|
+ });
|
|
|
+
|
|
|
+ // There is a bug here
|
|
|
+ // Test.add_func("/invercargill/operator/parallel/select_types", () => {
|
|
|
+ // var items = ate(new Obj1[] {
|
|
|
+ // new Obj1() {
|
|
|
+ // firstname = "Billy",
|
|
|
+ // lastname = "Barrow"
|
|
|
+ // },
|
|
|
+ // new Obj1() {
|
|
|
+ // firstname = "Dylan",
|
|
|
+ // lastname = "Erskine"
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+
|
|
|
+ // var result = items.parallel_select<Obj2>(i => new Obj2() { fullname = @"$(i.firstname) $(i.lastname)"}, 2);
|
|
|
+
|
|
|
+ // foreach (var item in result) {
|
|
|
+ // print(@"Item != null: $(item != null)\n");
|
|
|
+ // print(item.fullname);
|
|
|
+ // }
|
|
|
+
|
|
|
+ // assert_true(result.any(p => p.fullname == "Dylan Erskine"));
|
|
|
+ // assert_true(result.any(p => p.fullname == "Billy Barrow"));
|
|
|
+ // });
|
|
|
+
|
|
|
}
|
|
|
|
|
|
class ParallelObj {
|