27 lines
866 B
Julia
27 lines
866 B
Julia
|
using FeynmanDiagramGenerator
|
||
|
|
||
|
import FeynmanDiagramGenerator.EmptyTree
|
||
|
import FeynmanDiagramGenerator.Subtree
|
||
|
import FeynmanDiagramGenerator.leaves
|
||
|
import FeynmanDiagramGenerator.ForestIterator
|
||
|
|
||
|
@testset "Number of leaves" begin
|
||
|
@test leaves(EmptyTree()) == 1
|
||
|
@test leaves(Subtree(EmptyTree(), EmptyTree())) == 2
|
||
|
@test leaves(Subtree(EmptyTree(), Subtree(EmptyTree(), EmptyTree()))) == 3
|
||
|
end
|
||
|
|
||
|
@testset "Number of Forests" begin
|
||
|
@test_throws AssertionError Forest(0)
|
||
|
@test_throws AssertionError ForestIterator(0)
|
||
|
|
||
|
groundtruth_lengths = [1, 1, 1, 2, 3, 6, 11, 23, 46, 98, 207, 451, 983, 2179, 4850, 10905, 24631, 56011, 127912, 293547]
|
||
|
|
||
|
@testset "Forest with $i leaves" for i in 1:20
|
||
|
@test length([t for t in Forest(i)]) == groundtruth_lengths[i]
|
||
|
for t in Forest(i)
|
||
|
@test leaves(t) == i
|
||
|
end
|
||
|
end
|
||
|
end
|