318
318
end ;
319
319
320
320
@testset " chunking mode + chunksize option" begin
321
- for sched in (DynamicScheduler, StaticScheduler)
321
+ for sched in (DynamicScheduler, StaticScheduler, GreedyScheduler )
322
322
@test sched () isa sched
323
323
@test sched (; chunksize = 2 ) isa sched
324
324
@@ -328,26 +328,41 @@ end;
328
328
OhMyThreads. Schedulers. FixedCount
329
329
@test OhMyThreads. Schedulers. chunking_mode (sched (; chunking = false )) ==
330
330
OhMyThreads. Schedulers. NoChunking
331
- @test OhMyThreads. Schedulers. chunking_mode (sched (;
332
- nchunks = 2 , chunksize = 4 , chunking = false )) ==
333
- OhMyThreads. Schedulers. NoChunking
334
- @test OhMyThreads. Schedulers. chunking_mode (sched (;
335
- nchunks = - 2 , chunksize = - 4 , split = :whatever , chunking = false )) ==
336
- OhMyThreads. Schedulers. NoChunking
331
+ if sched != GreedyScheduler
332
+ # For (Dynamic|Static)Scheduler `chunking = false` overrides `nchunks` and
333
+ # `chunksize`
334
+ @test OhMyThreads. Schedulers. chunking_mode (sched (;
335
+ nchunks = 2 , chunksize = 4 , chunking = false )) ==
336
+ OhMyThreads. Schedulers. NoChunking
337
+ @test OhMyThreads. Schedulers. chunking_mode (sched (;
338
+ nchunks = - 2 , chunksize = - 4 , split = :whatever , chunking = false )) ==
339
+ OhMyThreads. Schedulers. NoChunking
340
+ @test OhMyThreads. Schedulers. chunking_enabled (sched (;
341
+ nchunks = - 2 , chunksize = - 4 , chunking = false )) == false
342
+ @test OhMyThreads. Schedulers. chunking_enabled (sched (;
343
+ nchunks = 2 , chunksize = 4 , chunking = false )) == false
344
+ else
345
+ # For GreedyScheduler `nchunks` or `chunksize` overrides `chunking = false`
346
+ @test OhMyThreads. Schedulers. chunking_mode (sched (;
347
+ nchunks = 2 , chunking = false )) ==
348
+ OhMyThreads. Schedulers. FixedCount
349
+ @test OhMyThreads. Schedulers. chunking_mode (sched (;
350
+ chunksize = 2 , chunking = false )) ==
351
+ OhMyThreads. Schedulers. FixedSize
352
+ @test OhMyThreads. Schedulers. chunking_enabled (sched (;
353
+ nchunks = 2 , chunking = false )) == true
354
+ @test OhMyThreads. Schedulers. chunking_enabled (sched (;
355
+ chunksize = 4 , chunking = false )) == true
356
+ end
337
357
@test OhMyThreads. Schedulers. chunking_enabled (sched (; chunksize = 2 )) == true
338
358
@test OhMyThreads. Schedulers. chunking_enabled (sched (; nchunks = 2 )) == true
339
- @test OhMyThreads. Schedulers. chunking_enabled (sched (;
340
- nchunks = - 2 , chunksize = - 4 , chunking = false )) == false
341
- @test OhMyThreads. Schedulers. chunking_enabled (sched (;
342
- nchunks = 2 , chunksize = 4 , chunking = false )) == false
343
-
344
359
@test_throws ArgumentError sched (; nchunks = 2 , chunksize = 3 )
345
360
@test_throws ArgumentError sched (; nchunks = 0 , chunksize = 0 )
346
361
@test_throws ArgumentError sched (; nchunks = - 2 , chunksize = - 3 )
347
362
348
- let scheduler = sched (; chunksize = 2 )
363
+ let scheduler = sched (; chunksize = 2 , split = :batch )
349
364
@test tmapreduce (sin, + , 1 : 10 ; scheduler) ≈ mapreduce (sin, + , 1 : 10 )
350
- @test tmap (sin, 1 : 10 ; scheduler) ≈ map (sin, 1 : 10 )
365
+ @test tmap (sin, Float64, 1 : 10 ; scheduler) ≈ map (sin, 1 : 10 )
351
366
@test isnothing (tforeach (sin, 1 : 10 ; scheduler))
352
367
@test treduce (+ , 1 : 10 ; scheduler) ≈ reduce (+ , 1 : 10 )
353
368
end
0 commit comments