|
88 | 88 |
|
89 | 89 | @testset "Compute L^1 distance and norm" begin |
90 | 90 | interval = LSHFunctions.@interval(-π ≤ x ≤ π) |
91 | | - f(x) = 0 |
92 | | - g(x) = 2 |
| 91 | + f = x -> 0 |
| 92 | + g = x -> 2 |
93 | 93 |
|
94 | 94 | @test L1_norm(g, interval) ≈ L1(f, g, interval) ≈ 4π |
95 | 95 |
|
96 | | - g(x) = x |
| 96 | + g = x -> x |
97 | 97 |
|
98 | 98 | @test L1_norm(g, interval) ≈ L1(f, g, interval) ≈ π^2 |
99 | 99 |
|
100 | | - f(x) = x |
101 | | - g(x) = 2x.^2 |
| 100 | + f = x -> x |
| 101 | + g = x -> 2x.^2 |
102 | 102 |
|
103 | 103 | @test L1(f, g, interval) ≈ L1_norm(x -> f(x) - g(x), interval) |
104 | 104 | @test L1(f, g, interval) ≈ quadgk(x -> abs(f(x) - g(x)), -π, π)[1] |
105 | 105 | end |
106 | 106 |
|
107 | 107 | @testset "Compute L^2 distance and norm" begin |
108 | 108 | interval = LSHFunctions.@interval(-π ≤ x ≤ π) |
109 | | - f(x) = 0 |
110 | | - g(x) = 2 |
| 109 | + f = x -> 0 |
| 110 | + g = x -> 2 |
111 | 111 |
|
112 | 112 | @test L2_norm(g, interval) ≈ L2(f, g, interval) ≈ √(8π) |
113 | 113 |
|
114 | | - g(x) = x |
| 114 | + g = x -> x |
115 | 115 |
|
116 | 116 | @test L2_norm(g, interval) ≈ L2(f, g, interval) ≈ √(2π^3 / 3) |
117 | 117 |
|
118 | | - f(x) = x |
119 | | - g(x) = 2x.^2 |
| 118 | + f = x -> x |
| 119 | + g = x -> 2x.^2 |
120 | 120 |
|
121 | 121 | @test L2(f, g, interval) ≈ L2_norm(x -> f(x) - g(x), interval) |
122 | 122 | @test L2(f, g, interval) ≈ √quadgk(x -> abs2(f(x) - g(x)), -π, π)[1] |
123 | 123 | end |
124 | 124 |
|
125 | 125 | @testset "Compute L^p distance and norm" begin |
126 | 126 | interval = LSHFunctions.@interval(-π ≤ x ≤ π) |
127 | | - f(x) = 0 |
128 | | - g(x) = 2 |
| 127 | + f = x -> 0 |
| 128 | + g = x -> 2 |
129 | 129 |
|
130 | 130 | @test Lp_norm(g, interval, 1) ≈ Lp(f, g, interval, 1) ≈ L1(f, g, interval) |
131 | 131 | @test Lp_norm(g, interval, 2) ≈ Lp(f, g, interval, 2) ≈ L2(f, g, interval) |
132 | 132 | @test Lp_norm(g, interval, 3) ≈ Lp(f, g, interval, 3) ≈ (16π)^(1/3) |
133 | 133 |
|
134 | | - g(x) = x |
| 134 | + g = x -> x |
135 | 135 |
|
136 | 136 | @test Lp_norm(g, interval, 1) ≈ Lp(f, g, interval, 1) ≈ L1(f, g, interval) |
137 | 137 | @test Lp_norm(g, interval, 2) ≈ Lp(f, g, interval, 2) ≈ L2(f, g, interval) |
138 | 138 | @test Lp_norm(g, interval, 3) ≈ Lp(f, g, interval, 3) ≈ (π^4/2)^(1/3) |
139 | 139 |
|
140 | | - f(x) = x |
141 | | - g(x) = 2x.^2 |
| 140 | + f = x -> x |
| 141 | + g = x -> 2x.^2 |
142 | 142 | p = rand() + 1 |
143 | 143 |
|
144 | 144 | @test Lp(f, g, interval, p) ≈ Lp_norm(x -> f(x) - g(x), interval, p) |
|
172 | 172 |
|
173 | 173 | @testset "Compute cosine similarity between functions" begin |
174 | 174 | interval = LSHFunctions.@interval(0 ≤ x ≤ 1) |
175 | | - f(x) = (x ≤ 0.5) ? 1.0 : 0.0 |
176 | | - g(x) = (x ≤ 0.5) ? 0.0 : 1.0 |
| 175 | + f = x -> (x ≤ 0.5) ? 1.0 : 0.0 |
| 176 | + g = x -> (x ≤ 0.5) ? 0.0 : 1.0 |
177 | 177 |
|
178 | 178 | @test cossim(f, g, interval) ≈ 0 |
179 | 179 | @test cossim(f, f, interval) ≈ cossim(g, g, interval) ≈ 1 |
|
183 | 183 | cossim(g, x -> -g(x), interval) ≈ -1 |
184 | 184 | @test_throws ErrorException cossim(f, x -> 0.0, interval) |
185 | 185 |
|
186 | | - f(x) = x |
187 | | - g(x) = x.^2 |
| 186 | + f = x -> x |
| 187 | + g = x -> x.^2 |
188 | 188 |
|
189 | 189 | @test L2_norm(f, interval) ≈ 1/√3 |
190 | 190 | @test L2_norm(g, interval) ≈ 1/√5 |
@@ -310,15 +310,15 @@ end |
310 | 310 |
|
311 | 311 | @testset "Compute L^2 inner products between pairs of functions" begin |
312 | 312 | interval = LSHFunctions.@interval(-π ≤ x ≤ π) |
313 | | - f(x) = 1 |
314 | | - g(x) = x |
| 313 | + f = x -> 1 |
| 314 | + g = x -> x |
315 | 315 |
|
316 | 316 | @test inner_prod(f, f, interval) ≈ L2_norm(f, interval)^2 ≈ 2π |
317 | 317 | @test inner_prod(g, g, interval) ≈ L2_norm(g, interval)^2 ≈ 2π^3 / 3 |
318 | 318 | @test isapprox(inner_prod(f, g, interval), 0.0; atol = 1e-15) |
319 | 319 |
|
320 | | - f(x) = sin(x) |
321 | | - g(x) = cos(x) |
| 320 | + f = x -> sin(x) |
| 321 | + g = x -> cos(x) |
322 | 322 |
|
323 | 323 | @test inner_prod(f, f, interval) ≈ L2_norm(f, interval)^2 ≈ |
324 | 324 | quadgk(x -> sin(x)^2, -π, π)[1] |
|
0 commit comments