forked from Keysight/Jlsca
-
Notifications
You must be signed in to change notification settings - Fork 0
/
distributed-tests.jl
69 lines (51 loc) · 1.59 KB
/
distributed-tests.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# This file is part of Jlsca, license is GPLv3, see https://www.gnu.org/licenses/gpl-3.0.en.html
#
# Authors: Cees-Bart Breunesse
using Base.Test
include("trs-core.jl")
include("conditional.jl")
include("distributed.jl")
function sanity1()
# configurable
workers = 33
numberOfAverages = 17
numberOfCandidates = 223
allEntries = Vector{Tuple{Int,Int}}(numberOfAverages*numberOfCandidates)
workers = min(workers, length(allEntries))
@printf("testing for %d workers, %d averages and %d candidates\n", workers, numberOfAverages, numberOfCandidates)
i = 0
for a in 1:numberOfAverages
for b in 1:numberOfCandidates
i += 1
allEntries[i] = (a,b-1)
end
end
@test i == numberOfAverages*numberOfCandidates
w = WorkSplit(numberOfAverages, numberOfCandidates)
range = getTotalRange(w)
entrySeen = falses(numberOfAverages*numberOfCandidates)
for i in range
entrySeen[i-range[1]+1] = true
(idx,cand) = allEntries[i-range[1]+1]
@test idx == getAverageIdx(w,i)
@test cand == getCandidate(w,i)
@test i == toVal(w,idx,cand)
end
@test !(false in entrySeen)
workerranges = splitRange(w, workers)
entrySeen = falses(numberOfAverages*numberOfCandidates)
base = range[1]
for wr in workerranges
@test length(wr) >= div(length(allEntries), workers)
for i in wr
@test entrySeen[i-base+1] == false
entrySeen[i-base+1] = true
(idx,cand) = allEntries[i-base+1]
@test idx == getAverageIdx(w,i)
@test cand == getCandidate(w,i)
@test i == toVal(w,idx,cand)
end
end
@test !(false in entrySeen)
end
sanity1()