Skip to content

Commit 2462184

Browse files
committed
add .gitattributes to ignore changes in Manifest.toml
1 parent efbb0f4 commit 2462184

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Manifest.toml linguist-generated=true

test/rules.jl

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
module rules
2+
3+
using Test, Diffractor, ChainRulesCore
4+
using Diffractor: var"'"
5+
6+
# invalidation for rrule
7+
rrule_demo(x) = sin(x)
8+
function rrule_demo_pullback(x)
9+
return function (Δx)
10+
return NoTangent(), Δx*cos(x)
11+
end
12+
end
13+
function ChainRulesCore.rrule(::typeof(rrule_demo), x)
14+
return rrule_demo(x), rrule_demo_pullback(x)
15+
end
16+
@test cos(42) == rrule_demo'(42)
17+
function rrule_demo_pullback(x)
18+
return function (Δx)
19+
return NoTangent(), Δx*sin(x)
20+
end
21+
end
22+
@test sin(42) == rrule_demo'(42)
23+
24+
# invalidation for frule
25+
frule_demo(x) = sin(x)
26+
function frule_demo_impl(Δx, x)
27+
sinx, cosx = sincos(x)
28+
return (sinx, sinx * Δx)
29+
end
30+
function ChainRulesCore.frule((_, Δx), ::typeof(frule_demo), x)
31+
return frule_demo_impl(Δx, x)
32+
end
33+
@test cos(42) == frule_demo'(42)
34+
function frule_demo_impl(Δx, x)
35+
sinx, cosx = sincos(x)
36+
return (sinx, sinx * Δx)
37+
end
38+
@test sin(42) == frule_demo'(42)
39+
40+
end # module rules

0 commit comments

Comments
 (0)