|
1 | | -using Test |
2 | | -using Preferences |
3 | | -using DeviceLayout, Unitful, FileIO, Logging |
4 | | -import Unitful: s, °, DimensionError |
5 | | -import Clipper |
6 | | -import ForwardDiff |
7 | | - |
8 | | -const pm2μm = DeviceLayout.PreferMicrons.pm |
9 | | -const nm2μm = DeviceLayout.PreferMicrons.nm |
10 | | -const μm2μm = DeviceLayout.PreferMicrons.μm |
11 | | -const mm2μm = DeviceLayout.PreferMicrons.mm |
12 | | -const cm2μm = DeviceLayout.PreferMicrons.cm |
13 | | -const m2μm = DeviceLayout.PreferMicrons.m |
14 | | - |
15 | | -const nm2nm = DeviceLayout.PreferNanometers.nm |
16 | | -const μm2nm = DeviceLayout.PreferNanometers.μm |
17 | | -const cm2nm = DeviceLayout.PreferNanometers.cm |
18 | | -const m2nm = DeviceLayout.PreferNanometers.m |
19 | | - |
20 | | -import Unitful: pm, nm, μm, mm, cm, m |
21 | | - |
22 | | -p(x, y) = Point(x, y) |
23 | | -const tdir = mktempdir() |
24 | | - |
25 | | -include("tests.jl") |
26 | | -include("test_align.jl") |
27 | | -include("test_bspline.jl") |
28 | | -include("test_clipping.jl") |
29 | | -include("test_coordinate_systems.jl") |
30 | | -include("test_entity.jl") |
31 | | -include("test_intersection.jl") |
32 | | -include("test_shapes.jl") |
33 | | -include("test_routes.jl") |
34 | | -include("test_texts.jl") |
35 | | -include("test_pointinpoly.jl") |
36 | | -include("test_solidmodel.jl") |
37 | | - |
38 | | -@testset "Schematic-Driven Layout" begin |
39 | | - include("test_schematicdriven.jl") |
40 | | -end |
41 | | - |
42 | | -include("test_pdktools.jl") |
43 | | - |
44 | | -@testset "ExamplePDK" begin |
45 | | - include("../examples/DemoQPU17/DemoQPU17.jl") |
46 | | - @time "Total" schematic, artwork = DemoQPU17.qpu17_demo(dir=tdir) |
47 | | - # Single transmon example file requires CSV, JSON, JSONSchema, DataFrames |
48 | | - # Just test the components |
49 | | - using .SchematicDrivenLayout |
50 | | - q = SchematicDrivenLayout.ExamplePDK.Transmons.ExampleRectangleTransmon() |
51 | | - rr = SchematicDrivenLayout.ExamplePDK.ReadoutResonators.ExampleClawedMeanderReadout() |
52 | | - @test geometry(q) isa CoordinateSystem{typeof(1.0DeviceLayout.nm)} |
53 | | - @test geometry(rr) isa CoordinateSystem{typeof(1.0DeviceLayout.nm)} |
54 | | - @test issubset([:readout, :xy, :z], keys(hooks(q))) |
55 | | - @test abs(hooks(rr).qubit.p.y - hooks(rr).feedline.p.y) ≈ rr.total_height |
56 | | -end |
57 | | - |
58 | | -using Aqua |
59 | | -@testset "Aqua tests" begin |
60 | | - # Everything but stdlib should have compat versions |
61 | | - Aqua.test_deps_compat( |
62 | | - DeviceLayout, |
63 | | - ignore=[:Dates, :LinearAlgebra, :Logging, :Random, :UUIDs], |
64 | | - check_extras=(; ignore=[:Test]) |
65 | | - ) |
66 | | - # We define ForwardDiff.extract_derivative with Unitful.Quantity; ignore that one |
67 | | - Aqua.test_piracies( |
68 | | - DeviceLayout, |
69 | | - treat_as_own=[DeviceLayout.ForwardDiff.extract_derivative] |
70 | | - ) |
71 | | - Aqua.test_stale_deps(DeviceLayout) |
72 | | - Aqua.test_undefined_exports(DeviceLayout) # This also checks exports from submodules |
73 | | - # Be careful about ambiguities when defining GeometryEntityStyle, since we define for convenience |
74 | | - # (T::Type{<:GeometryEntityStyle})(x::GeometryEntity, args...; kwargs...) = styled(x, T(args...; kwargs...)) |
75 | | - # A style whose first field is a GeometryEntity would be genuinely ambiguous |
76 | | - # And otherwise you might have to define an inner constructor where the first arg isn't ::Any |
77 | | - Aqua.test_ambiguities(DeviceLayout) |
| 1 | +using TestItemRunner |
| 2 | + |
| 3 | +@testsnippet CommonTestSetup begin |
| 4 | + using Test |
| 5 | + using Preferences |
| 6 | + using DeviceLayout, Unitful, FileIO, Logging |
| 7 | + import Unitful: s, °, DimensionError |
| 8 | + import Clipper |
| 9 | + import ForwardDiff |
| 10 | + |
| 11 | + const pm2μm = DeviceLayout.PreferMicrons.pm |
| 12 | + const nm2μm = DeviceLayout.PreferMicrons.nm |
| 13 | + const μm2μm = DeviceLayout.PreferMicrons.μm |
| 14 | + const mm2μm = DeviceLayout.PreferMicrons.mm |
| 15 | + const cm2μm = DeviceLayout.PreferMicrons.cm |
| 16 | + const m2μm = DeviceLayout.PreferMicrons.m |
| 17 | + |
| 18 | + const nm2nm = DeviceLayout.PreferNanometers.nm |
| 19 | + const μm2nm = DeviceLayout.PreferNanometers.μm |
| 20 | + const cm2nm = DeviceLayout.PreferNanometers.cm |
| 21 | + const m2nm = DeviceLayout.PreferNanometers.m |
| 22 | + |
| 23 | + import Unitful: pm, nm, μm, mm, cm, m |
| 24 | + |
| 25 | + p(x, y) = Point(x, y) |
| 26 | + const tdir = mktempdir() |
78 | 27 | end |
79 | 28 |
|
80 | | -rm(tdir, recursive=true) |
| 29 | +@run_package_tests |
0 commit comments