Skip to content

Commit b973a83

Browse files
committed
Add tests for SweepIterator. Update applyexp test.
1 parent beed105 commit b973a83

File tree

2 files changed

+61
-1
lines changed

2 files changed

+61
-1
lines changed

test/solvers/test_applyexp.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ end
5353

5454
nsites = 2
5555
factorize_kwargs = (; cutoff, maxdim)
56-
E, gs_psi = dmrg(H, psi0; factorize_kwargs, nsites, nsweeps, outputlevel)
56+
E, gs_psi = dmrg(H, psi0; factorize_kwargs, nsites, nsweeps, outputlevel = 0)
5757
(outputlevel >= 1) && println("2-site DMRG energy = ", E)
5858

5959
nsites = 1

test/solvers/test_sweepiterator.jl

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
using Test: @test, @testset
2+
using ITensorNetworks: ITensorNetworks, AbstractProblem, RegionIterator, SweepIterator, compute!, region_iterator, region_kwargs
3+
4+
include("utilities/tree_graphs.jl")
5+
6+
# TestProblem type for testing
7+
struct TestProblem <: AbstractProblem
8+
graph
9+
end
10+
11+
ITensorNetworks.state(T::TestProblem) = T.graph
12+
13+
ITensorNetworks.compute!(R::RegionIterator{<:TestProblem}) = "TestProblem Compute"
14+
15+
16+
@testset "SweepIterator Basics" begin
17+
g = build_tree(; nbranch = 3, nbranch_sites = 3)
18+
prob = TestProblem(g)
19+
20+
nsweeps = 5
21+
22+
# Basic construction, taking length
23+
sweep_iter = SweepIterator(prob, nsweeps)
24+
@test length(sweep_iter) == nsweeps
25+
26+
# Pass keyword parameters
27+
test_kwarg_a = 1
28+
test_kwarg_b = "b"
29+
sweep_iter = SweepIterator(prob, nsweeps; test_kwarg_a, test_kwarg_b)
30+
@test region_kwargs(region_iterator(sweep_iter)).test_kwarg_a == test_kwarg_a
31+
@test region_kwargs(region_iterator(sweep_iter)).test_kwarg_b == test_kwarg_b
32+
33+
# Pass array of parameters
34+
kws_array = [(; outputlevel = 0), (; outputlevel = 1)]
35+
sweep_iter = SweepIterator(prob, kws_array)
36+
@test length(sweep_iter) == length(kws_array)
37+
@test region_kwargs(region_iterator(sweep_iter)).outputlevel == 0
38+
end
39+
40+
@testset "SweepIterator Iteration" begin
41+
g = build_tree(; nbranch = 3, nbranch_sites = 3)
42+
prob = TestProblem(g)
43+
44+
nsweeps = 5
45+
sweep_iter = SweepIterator(prob, nsweeps)
46+
count = 0
47+
for _ in sweep_iter
48+
count += 1
49+
end
50+
@test count == nsweeps
51+
52+
# Test case of one iteration
53+
nsweeps = 1
54+
sweep_iter = SweepIterator(prob, nsweeps)
55+
count = 0
56+
for _ in sweep_iter
57+
count += 1
58+
end
59+
@test count == nsweeps
60+
end

0 commit comments

Comments
 (0)