Skip to content

Commit

Permalink
update and polish the code
Browse files Browse the repository at this point in the history
  • Loading branch information
ba2tripleO committed Feb 2, 2024
1 parent 4ac7bfc commit 8ebeecb
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 25 deletions.
2 changes: 1 addition & 1 deletion src/queries.jl
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ for (tagsymbol, tagvariant) in pairs(tag_types)
argssig_wild = [:($a::$t) for (a,t) in zip(args, sig_wild)]
wild_checks = [:(isa($(args[i]),Wildcard) || $(args[i])(tag[$i])) for i in idx]
nonwild_checks = [:(tag[$i]==$(args[i])) for i in complement_idx]
newmethod_reg = quote function query(reg::Register, $(argssig_wild...), ::Val{allB}=Val{false}(); locked::Union{Nothing,Bool}=nothing, assigned::Union{Nothing,Bool}=nothing) where {allB}
newmethod_reg = quote function query(reg::Register, $(argssig_wild...), ::Val{allB}=Val{false}(), ::Val{fifo}=Val{true}(); locked::Union{Nothing,Bool}=nothing, assigned::Union{Nothing,Bool}=nothing) where {allB, fifo}
res = NamedTuple{(:slot, :tag), Tuple{RegRef, Tag}}[]
for (reg_idx, tags) in enumerate(reg.tags)
slot = reg[reg_idx]
Expand Down
58 changes: 35 additions & 23 deletions test/test_entanglement_consumer.jl
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,47 @@ using Graphs
using ConcurrentSim
using Test

using Logging
logger = ConsoleLogger(Logging.Debug; meta_formatter=(args...)->(:black,"",""))
global_logger(logger)
if isinteractive()
using Logging
logger = ConsoleLogger(Logging.Warn; meta_formatter=(args...)->(:black,"",""))
global_logger(logger)
println("Logger set to debug")
end

n = 5
for i in 1:30, n in 3:30

net = RegisterNet([Register(100) for j in 1:n])
sim = get_time_tracker(net)
net = RegisterNet([Register(10) for j in 1:n])
sim = get_time_tracker(net)

for e in edges(net)
eprot = EntanglerProt(sim, net, e.src, e.dst; rounds=-1, randomize=true)
@process eprot()
end
for e in edges(net)
eprot = EntanglerProt(sim, net, e.src, e.dst; rounds=-1, randomize=true)
@process eprot()
end

for v in 2:n-1
sprot = SwapperProt(sim, net, v; rounds=-1)
@process sprot()
end
for v in 2:n-1
sprot = SwapperProt(sim, net, v; rounds=-1)
@process sprot()
end

for v in vertices(net)
etracker = EntanglementTracker(sim, net, v)
@process etracker()
end
for v in vertices(net)
etracker = EntanglementTracker(sim, net, v)
@process etracker()
end

econ = EntanglementConsumer(sim, net, 1, 3, [], 1.0)
@process econ()

econ = EntanglementConsumer(sim, net, 1, 3, [], 1.0)
@process econ()
run(sim, 100)

run(sim, 400)

for i in 1:100
if !isnothing(econ.log[i][2])
@test econ.log[i][2] 1.0
@test econ.log[i][3] 1.0
end
end

@test length([econ.log[i] for i in 1:400 if !isnothing(econ.log[i][2])]) > 300
# length([net[2].tags[i][end] for i in 1:100 if net[2].tags[i][end][2]==4]) # almost all slots connnected to either 3, 4 or 5, so no room for swaps
end
# @test length([econ.log[i] for i in 1:400 if !isnothing(econ.log[i][2])]) > 300
# length([net[2].tags[i][end] for i in 1:100 if net[2].tags[i][end][2]==4]) # almost all slots connnected to either 3, 4 or 5, so no room for swaps

Check warning on line 49 in test/test_entanglement_consumer.jl

View workflow job for this annotation

GitHub Actions / Spell Check with Typos

"connnected" should be "connected".
# [net[2].tags[i][end] for i in 1:100]
3 changes: 2 additions & 1 deletion test/test_tags_and_queries.jl
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ tag!(reg[3], EntanglementCounterpart, 5, 1)
tag!(reg[3], EntanglementCounterpart, 1, 9)
tag!(reg[3], EntanglementCounterpart, 5, 1)

queryall(reg[3], EntanglementCounterpart, 5, 1)
@test query(reg[3], EntanglementCounterpart, 5, 1) == (depth = 7, tag = Tag(EntanglementCounterpart, 5, 1))
@test queryall(reg[3], EntanglementCounterpart, 5, 1) == [(depth = 7, tag = Tag(EntanglementCounterpart, 5, 1)), (depth = 5, tag = Tag(EntanglementCounterpart, 5, 1)), (depth = 2, tag = Tag(EntanglementCounterpart, 5, 1))]
@test queryall(reg[3], EntanglementCounterpart, 5, 1; fifo=false) == [(depth = 2, tag = Tag(EntanglementCounterpart, 5, 1)), (depth = 5, tag = Tag(EntanglementCounterpart, 5, 1)), (depth = 7, tag = Tag(EntanglementCounterpart, 5, 1))]

Expand Down Expand Up @@ -77,5 +77,6 @@ tag!(reg[1], EntanglementCounterpart, 1, 9)
tag!(reg[1], EntanglementCounterpart, 5, 1)
tag!(reg[1], EntanglementCounterpart, 9, 3)

@test query(reg, EntanglementCounterpart, 5, 1) == (slot = reg[4], tag = Tag(EntanglementCounterpart, 5, 1))
@test queryall(reg, EntanglementCounterpart, 5, 1) == [(slot = reg[4], tag = Tag(EntanglementCounterpart, 5, 1)), (slot = reg[3], tag = Tag(EntanglementCounterpart, 5, 1)), (slot = reg[1], tag = Tag(EntanglementCounterpart, 5, 1))]
@test queryall(reg, Tag(EntanglementCounterpart, 5, 1); fifo=false) == [(slot = reg[1], tag = Tag(EntanglementCounterpart, 5, 1)), (slot = reg[3], tag = Tag(EntanglementCounterpart, 5, 1)), (slot = reg[4], tag = Tag(EntanglementCounterpart, 5, 1))]

0 comments on commit 8ebeecb

Please sign in to comment.