|
1 | | -using ModelingToolkit, OrdinaryDiffEq, RecursiveArrayTools, SymbolicIndexingInterface, Zygote, Test |
| 1 | +using ModelingToolkit, OrdinaryDiffEq, RecursiveArrayTools, SymbolicIndexingInterface, |
| 2 | + Zygote, Test |
2 | 3 | using Optimization, OptimizationOptimJL |
3 | 4 | using ModelingToolkit: t_nounits as t, D_nounits as D |
4 | 5 |
|
|
98 | 99 | @test size(sol[[lorenz1.x, lorenz2.x], :]) == size(sol[[1, 2], :]) == size(sol[1:2, :]) |
99 | 100 |
|
100 | 101 | gs_sym, = Zygote.gradient(sol) do sol |
101 | | - sum(sol[lorenz1.x]) |
| 102 | + sum(sol[lorenz1.x]) |
102 | 103 | end |
103 | 104 | idx_sym = SymbolicIndexingInterface.variable_index(sys, lorenz1.x) |
104 | 105 | true_grad_sym = zeros(length(ModelingToolkit.unknowns(sys))) |
105 | | -true_grad_sym[idx_sym] = 1. |
| 106 | +true_grad_sym[idx_sym] = 1.0 |
106 | 107 |
|
107 | 108 | @test all(map(x -> x == true_grad_sym, gs_sym)) |
108 | 109 |
|
109 | 110 | gs_vec, = Zygote.gradient(sol) do sol |
110 | | - sum(sum.(sol[[lorenz1.x, lorenz2.x]])) |
| 111 | + sum(sum.(sol[[lorenz1.x, lorenz2.x]])) |
111 | 112 | end |
112 | 113 | idx_vecsym = SymbolicIndexingInterface.variable_index.(Ref(sys), [lorenz1.x, lorenz2.x]) |
113 | 114 | true_grad_vecsym = zeros(length(ModelingToolkit.unknowns(sys))) |
114 | | -true_grad_vecsym[idx_vecsym] .= 1. |
| 115 | +true_grad_vecsym[idx_vecsym] .= 1.0 |
115 | 116 |
|
116 | 117 | @test all(map(x -> x == true_grad_vecsym, gs_vec)) |
117 | 118 |
|
118 | 119 | gs_tup, = Zygote.gradient(sol) do sol |
119 | | - sum(sum.(collect.(sol[(lorenz1.x, lorenz2.x)]))) |
| 120 | + sum(sum.(collect.(sol[(lorenz1.x, lorenz2.x)]))) |
120 | 121 | end |
121 | 122 | idx_tupsym = SymbolicIndexingInterface.variable_index.(Ref(sys), [lorenz1.x, lorenz2.x]) |
122 | 123 | true_grad_tupsym = zeros(length(ModelingToolkit.unknowns(sys))) |
123 | | -true_grad_tupsym[idx_tupsym] .= 1. |
| 124 | +true_grad_tupsym[idx_tupsym] .= 1.0 |
124 | 125 |
|
125 | 126 | @test all(map(x -> x == true_grad_tupsym, gs_tup)) |
126 | 127 |
|
|
0 commit comments