@@ -29,6 +29,8 @@ include("../test_networks.jl")
29
29
# ## Just be sure to remove all such macros before you commit a change since it
30
30
# ## will cause issues with Travis.
31
31
32
+ # Generally, for all latexify tests, the lines after `@test latexify(rn) == replace(` must
33
+ # start without any tabs, hence the somewhat weird formatting.
32
34
33
35
# ## Basic Tests ###
34
36
48
50
(d1,d2,d3,d4,d5,d6), (X1,X2,X3,X4,X5,X6) ⟶ ∅
49
51
end
50
52
51
- # Latexify.@generate_test latexify(rn)
52
- @test_broken latexify (rn; expand_functions = false ) == replace (
53
- raw " \b egin{align*}
54
- \v arnothing &\x rightarrow{\f rac{X4^{n1} v1^{2} K1^{n1}}{ \l eft( K1^{n1} + X4^{n1} \r ight) \l eft( K1^{n1} + X2^{n1} \r ight)} } \m athrm{X1} \\
55
- \v arnothing &\x rightarrow{\m athrm{hill}\l eft( X5, v2, K2, n2 \r ight)} \m athrm{X2} \\
56
- \v arnothing &\x rightarrow{\m athrm{hill}\l eft( X3, v3, K3, n3 \r ight)} \m athrm{X3} \\
57
- \v arnothing &\x rightarrow{\m athrm{hillr}\l eft( X1, v4, K4, n4 \r ight)} \m athrm{X4} \\
58
- \v arnothing &\x rightarrow{\m athrm{hill}\l eft( X2, v5, K5, n5 \r ight)} \m athrm{X5} \\
59
- \v arnothing &\x rightarrow{\m athrm{hillar}\l eft( X1, X6, v6, K6, n6 \r ight)} \m athrm{X6} \\
60
- \m athrm{X2} &\x rightleftharpoons[k2]{k1} \m athrm{X1} + 2 \m athrm{X4} \\
61
- \m athrm{X4} &\x rightleftharpoons[k4]{k3} \m athrm{X3} \\
62
- 3 \m athrm{X5} + \m athrm{X1} &\x rightleftharpoons[k6]{k5} \m athrm{X2} \\
63
- \m athrm{X1} &\x rightarrow{d1} \v arnothing \\
64
- \m athrm{X2} &\x rightarrow{d2} \v arnothing \\
65
- \m athrm{X3} &\x rightarrow{d3} \v arnothing \\
66
- \m athrm{X4} &\x rightarrow{d4} \v arnothing \\
67
- \m athrm{X5} &\x rightarrow{d5} \v arnothing \\
68
- \m athrm{X6} &\x rightarrow{d6} \v arnothing
69
- \e nd{align*}
70
- " , " \r\n " => " \n " )
71
-
72
- # Latexify.@generate_test latexify(rn; expand_functions=false )
73
- @test_broken latexify (rn; expand_functions = false ) == replace (
74
- raw " \b egin{align*}
75
- \v arnothing &\x rightarrow{\f rac{X4^{n1} v1^{2} K1^{n1}}{\l eft( K1^{n1} + X4^{n1} \r ight) \l eft( K1^{n1} + X2^{n1} \r ight)}} \m athrm{X1} \\
76
- \v arnothing &\x rightarrow{\m athrm{mm} \l eft( X5, v2, K2 \r ight) } \m athrm{X2} \\
77
- \v arnothing &\x rightarrow{\m athrm{mmr} \l eft( X3, v3, K3 \r ight) } \m athrm{X3} \\
78
- \v arnothing &\x rightarrow{\m athrm{hillr} \l eft( X1, v4, K4, n4 \r ight) } \m athrm{X4} \\
79
- \v arnothing &\x rightarrow{\m athrm{hill} \l eft( X2, v5, K5, n5 \r ight) } \m athrm{X5} \\
80
- \v arnothing &\x rightarrow{\m athrm{hillar} \l eft( X1, X6, v6, K6, n6 \r ight) } \m athrm{X6} \\
81
- \m athrm{X2} &\x rightleftharpoons[k2]{k1} \m athrm{X1} + 2 \m athrm{X4} \\
82
- \m athrm{X4} &\x rightleftharpoons[k4]{k3} \m athrm{X3} \\
83
- 3 \m athrm{X5} + \m athrm{X1} &\x rightleftharpoons[k6]{k5} \m athrm{X2} \\
84
- \m athrm{X1} &\x rightarrow{d1} \v arnothing \\
85
- \m athrm{X2} &\x rightarrow{d2} \v arnothing \\
86
- \m athrm{X3} &\x rightarrow{d3} \v arnothing \\
87
- \m athrm{X4} &\x rightarrow{d4} \v arnothing \\
88
- \m athrm{X5} &\x rightarrow{d5} \v arnothing \\
89
- \m athrm{X6} &\x rightarrow{d6} \v arnothing
90
- \e nd{align*}
91
- " , " \r\n " => " \n " )
92
-
93
- # Latexify.@generate_test latexify(rn, mathjax= false)
94
- @test_broken latexify (rn, mathjax = false ) == replace (
95
- raw " \b egin{align*}
96
- \v arnothing &\x rightarrow{\f rac{X4^{n1} v1^{2} K1^{n1}}{\l eft( K1^{n1} + X4^{n1} \r ight) \l eft( K1^{n1} + X2^{n1} \r ight)}} \m athrm{X1} \\
97
- \v arnothing &\x rightarrow{\f rac{X5 v2}{K2 + X5 }} \m athrm{X2} \\
98
- \v arnothing &\x rightarrow{\f rac{K3 v3}{K3 + X3 }} \m athrm{X3} \\
99
- \v arnothing &\x rightarrow{\f rac{v4 K4^{n4}}{K4^{n4} + X1^{n4}}} \m athrm{X4} \\
100
- \v arnothing &\x rightarrow{\f rac{v5 X2^{n5}}{X2^{n5} + K5^{n5}}} \m athrm{X5} \\
101
- \v arnothing &\x rightarrow{\f rac{v6 X1^{n6}}{X6^{n6} + K6^{n6} + X1^{n6}}} \m athrm{X6} \\
102
- \m athrm{X2} &\x rightleftharpoons[k2]{k1} \m athrm{X1} + 2 \m athrm{X4} \\
103
- \m athrm{X4} &\x rightleftharpoons[k4]{k3} \m athrm{X3} \\
104
- 3 \m athrm{X5} + \m athrm{X1} &\x rightleftharpoons[k6]{k5} \m athrm{X2} \\
105
- \m athrm{X1} &\x rightarrow{d1} \v arnothing \\
106
- \m athrm{X2} &\x rightarrow{d2} \v arnothing \\
107
- \m athrm{X3} &\x rightarrow{d3} \v arnothing \\
108
- \m athrm{X4} &\x rightarrow{d4} \v arnothing \\
109
- \m athrm{X5} &\x rightarrow{d5} \v arnothing \\
110
- \m athrm{X6} &\x rightarrow{d6} \v arnothing
111
- \e nd{align*}
112
- " , " \r\n " => " \n " )
53
+ # Latexify.@generate_test latexify(rn; expand_functions = false )
54
+ @test latexify (rn; expand_functions = false ) == replace (
55
+ raw " \b egin{align*}
56
+ \v arnothing &\x rightarrow{\m athrm{hillr} \l eft( X2, v1, K1, n1 \r ight) \m athrm{hill} \ l eft( X4, v1, K1, n1 \r ight)} \m athrm{X1} \\
57
+ \v arnothing &\x rightarrow{\m athrm{hill}\l eft( X5, v2, K2, n2 \r ight)} \m athrm{X2} \\
58
+ \v arnothing &\x rightarrow{\m athrm{hill}\l eft( X3, v3, K3, n3 \r ight)} \m athrm{X3} \\
59
+ \v arnothing &\x rightarrow{\m athrm{hillr}\l eft( X1, v4, K4, n4 \r ight)} \m athrm{X4} \\
60
+ \v arnothing &\x rightarrow{\m athrm{hill}\l eft( X2, v5, K5, n5 \r ight)} \m athrm{X5} \\
61
+ \v arnothing &\x rightarrow{\m athrm{hillar}\l eft( X1, X6, v6, K6, n6 \r ight)} \m athrm{X6} \\
62
+ \m athrm{X2} &\x rightleftharpoons[k2]{k1} \m athrm{X1} + 2 \m athrm{X4} \\
63
+ \m athrm{X4} &\x rightleftharpoons[k4]{k3} \m athrm{X3} \\
64
+ 3 \m athrm{X5} + \m athrm{X1} &\x rightleftharpoons[k6]{k5} \m athrm{X2} \\
65
+ \m athrm{X1} &\x rightarrow{d1} \v arnothing \\
66
+ \m athrm{X2} &\x rightarrow{d2} \v arnothing \\
67
+ \m athrm{X3} &\x rightarrow{d3} \v arnothing \\
68
+ \m athrm{X4} &\x rightarrow{d4} \v arnothing \\
69
+ \m athrm{X5} &\x rightarrow{d5} \v arnothing \\
70
+ \m athrm{X6} &\x rightarrow{d6} \v arnothing
71
+ \e nd{align*}
72
+ " , " \r\n " => " \n " )
73
+
74
+ # Latexify.@generate_test latexify(rn; expand_functions = true )
75
+ @test latexify (rn; expand_functions = true ) == replace (
76
+ raw " \b egin{align*}
77
+ \v arnothing &\x rightarrow{\f rac{X4^{n1} v1^{2} K1^{n1}}{\l eft( K1^{n1} + X4^{n1} \r ight) \l eft( K1^{n1} + X2^{n1} \r ight)}} \m athrm{X1} \\
78
+ \v arnothing &\x rightarrow{\f rac{v2 X5^{n2}}{X5^{n2} + K2^{n2}} } \m athrm{X2} \\
79
+ \v arnothing &\x rightarrow{\f rac{v3 X3^{n3}}{X3^{n3} + K3^{n3}} } \m athrm{X3} \\
80
+ \v arnothing &\x rightarrow{\f rac{v4 K4^{n4}}{K4^{n4} + X1^{n4}} } \m athrm{X4} \\
81
+ \v arnothing &\x rightarrow{\f rac{v5 X2^{n5}}{X2^{n5} + K5^{n5}} } \m athrm{X5} \\
82
+ \v arnothing &\x rightarrow{\f rac{v6 X1^{n6}}{X6^{n6} + K6^{n6} + X1^{n6}} } \m athrm{X6} \\
83
+ \m athrm{X2} &\x rightleftharpoons[k2]{k1} \m athrm{X1} + 2 \m athrm{X4} \\
84
+ \m athrm{X4} &\x rightleftharpoons[k4]{k3} \m athrm{X3} \\
85
+ 3 \m athrm{X5} + \m athrm{X1} &\x rightleftharpoons[k6]{k5} \m athrm{X2} \\
86
+ \m athrm{X1} &\x rightarrow{d1} \v arnothing \\
87
+ \m athrm{X2} &\x rightarrow{d2} \v arnothing \\
88
+ \m athrm{X3} &\x rightarrow{d3} \v arnothing \\
89
+ \m athrm{X4} &\x rightarrow{d4} \v arnothing \\
90
+ \m athrm{X5} &\x rightarrow{d5} \v arnothing \\
91
+ \m athrm{X6} &\x rightarrow{d6} \v arnothing
92
+ \e nd{align*}
93
+ " , " \r\n " => " \n " )
94
+
95
+ # Latexify.@generate_test latexify(rn, mathjax = false)
96
+ @test latexify (rn, mathjax = false ) == replace (
97
+ raw " \b egin{align*}
98
+ \v arnothing &\x rightarrow{\f rac{X4^{n1} v1^{2} K1^{n1}}{\l eft( K1^{n1} + X4^{n1} \r ight) \l eft( K1^{n1} + X2^{n1} \r ight)}} \m athrm{X1} \\
99
+ \v arnothing &\x rightarrow{\f rac{v2 X5^{n2}}{X5^{n2} + K2^{n2} }} \m athrm{X2} \\
100
+ \v arnothing &\x rightarrow{\f rac{v3 X3^{n3}}{X3^{n3} + K3^{n3} }} \m athrm{X3} \\
101
+ \v arnothing &\x rightarrow{\f rac{v4 K4^{n4}}{K4^{n4} + X1^{n4}}} \m athrm{X4} \\
102
+ \v arnothing &\x rightarrow{\f rac{v5 X2^{n5}}{X2^{n5} + K5^{n5}}} \m athrm{X5} \\
103
+ \v arnothing &\x rightarrow{\f rac{v6 X1^{n6}}{X6^{n6} + K6^{n6} + X1^{n6}}} \m athrm{X6} \\
104
+ \m athrm{X2} &\x rightleftharpoons[k2]{k1} \m athrm{X1} + 2 \m athrm{X4} \\
105
+ \m athrm{X4} &\x rightleftharpoons[k4]{k3} \m athrm{X3} \\
106
+ 3 \m athrm{X5} + \m athrm{X1} &\x rightleftharpoons[k6]{k5} \m athrm{X2} \\
107
+ \m athrm{X1} &\x rightarrow{d1} \v arnothing \\
108
+ \m athrm{X2} &\x rightarrow{d2} \v arnothing \\
109
+ \m athrm{X3} &\x rightarrow{d3} \v arnothing \\
110
+ \m athrm{X4} &\x rightarrow{d4} \v arnothing \\
111
+ \m athrm{X5} &\x rightarrow{d5} \v arnothing \\
112
+ \m athrm{X6} &\x rightarrow{d6} \v arnothing
113
+ \e nd{align*}
114
+ " , " \r\n " => " \n " )
113
115
end
114
116
115
117
# Tests basic functions on simple network (2).
@@ -121,35 +123,49 @@ let
121
123
end
122
124
123
125
# Latexify.@generate_test latexify(rn)
124
- @test_broken latexify (rn) == replace (
125
- raw " \b egin{align*}
126
- \v arnothing &\x rightleftharpoons[d_{a}]{\f rac{p_{a} B^{n}}{k^{n} + B^{n}}} \m athrm{A} \\
127
- \v arnothing &\x rightleftharpoons[d_{b}]{p_{b}} \m athrm{B} \\
128
- 3 \m athrm{B} &\x rightleftharpoons[r_{b}]{r_{a}} \m athrm{A}
129
- \e nd{align*}
130
- " , " \r\n " => " \n " )
131
-
132
- # Latexify.@generate_test latexify(rn, mathjax= false)
133
- @test_broken latexify (rn, mathjax = false ) == replace (
134
- raw " \b egin{align*}
135
- \v arnothing &\x rightleftharpoons[d_{a}]{\f rac{p_{a} B^{n}}{k^{n} + B^{n}}} \m athrm{A} \\
136
- \v arnothing &\x rightleftharpoons[d_{b}]{p_{b}} \m athrm{B} \\
137
- 3 \m athrm{B} &\x rightleftharpoons[r_{b}]{r_{a}} \m athrm{A}
138
- \e nd{align*}
139
- " , " \r\n " => " \n " )
126
+ @test latexify (rn) == replace (
127
+ raw " \b egin{align*}
128
+ \v arnothing &\x rightleftharpoons[d_{a}]{\f rac{p_{a} B^{n}}{k^{n} + B^{n}}} \m athrm{A} \\
129
+ \v arnothing &\x rightleftharpoons[d_{b}]{p_{b}} \m athrm{B} \\
130
+ 3 \m athrm{B} &\x rightleftharpoons[r_{b}]{r_{a}} \m athrm{A}
131
+ \e nd{align*}
132
+ " , " \r\n " => " \n " )
133
+
134
+ # Latexify.@generate_test latexify(rn, mathjax = false)
135
+ @test latexify (rn, mathjax = false ) == replace (
136
+ raw " \b egin{align*}
137
+ \v arnothing &\x rightleftharpoons[d_{a}]{\f rac{p_{a} B^{n}}{k^{n} + B^{n}}} \m athrm{A} \\
138
+ \v arnothing &\x rightleftharpoons[d_{b}]{p_{b}} \m athrm{B} \\
139
+ 3 \m athrm{B} &\x rightleftharpoons[r_{b}]{r_{a}} \m athrm{A}
140
+ \e nd{align*}
141
+ " , " \r\n " => " \n " )
140
142
end
141
143
142
144
# Tests for system with parametric stoichiometry.
143
145
let
144
146
rn = @reaction_network begin
145
147
p, 0 --> (m + n)* X
146
148
end
147
-
148
- @test_broken latexify (rn) == replace (
149
- raw " \b egin{align*}
150
- \v arnothing &\x rightarrow{p} (m + n)\m athrm{X}
151
- \e nd{align*}
152
- " , " \r\n " => " \n " )
149
+
150
+ # Latexify.@generate_test latexify(rn)
151
+ @test latexify (rn) == replace (
152
+ raw " \b egin{align*}
153
+ \v arnothing &\x rightarrow{p} (m + n)\m athrm{X}
154
+ \e nd{align*}
155
+ " , " \r\n " => " \n " )
156
+ end
157
+
158
+ # Checks for systems with vector species/parameters.
159
+ # Technically tests would work, however, the display is non-ideal (https://github.com/SciML/Catalyst.jl/issues/932, https://github.com/JuliaSymbolics/Symbolics.jl/issues/1167).
160
+ let
161
+ rn = @reaction_network begin
162
+ @parameters k[1 : 2 ] x[1 : 2 ] [isconstantspecies= true ]
163
+ @species (X (t))[1 : 2 ] (K (t))[1 : 2 ]
164
+ (k[1 ]* K[1 ],k[2 ]* K[2 ]), X[1 ] + x[1 ] <--> X[2 ] + x[2 ]
165
+ end
166
+
167
+ # Latexify.@generate_test latexify(rn)
168
+ @test_broken false
153
169
end
154
170
155
171
# ## Tests the `form` Option ###
@@ -170,21 +186,15 @@ let
170
186
end
171
187
172
188
# Latexify.@generate_test latexify(rn; form=:ode)
173
- @test_broken latexify (rn; form = :ode ) == replace (
174
- raw " $\b egin{align}
175
- \f rac{\m athrm{d} X\l eft( t \r ight)}{\m athrm{d}t} =& p - \l eft( X\l eft( t \r ight) \r ight)^{2} kB - d X\l eft( t \r ight) + 2 kD \m athrm{X2}\l eft( t \r ight) \\
176
- \f rac{\m athrm{d} \m athrm{X2}\l eft( t \r ight)}{\m athrm{d}t} =& \f rac{1}{2} \l eft( X\l eft( t \r ight) \r ight)^{2} kB - kD \m athrm{X2}\l eft( t \r ight)
177
- \e nd{align}
178
- $" , " \r\n " => " \n " )
179
-
180
- # Currently latexify doesn't handle SDE systems properly, and they look identical to ode systems.
181
- # The "==" shoudl be a "!=", but due to latexify tests not working, for the broken test to work, I changed it.
182
- @test_broken latexify (rn; form= :sde ) == replace (
183
- raw " $\b egin{align}
184
- \f rac{\m athrm{d} X\l eft( t \r ight)}{\m athrm{d}t} =& p - \l eft( X\l eft( t \r ight) \r ight)^{2} kB - d X\l eft( t \r ight) + 2 kD \m athrm{X2}\l eft( t \r ight) \\
185
- \f rac{\m athrm{d} \m athrm{X2}\l eft( t \r ight)}{\m athrm{d}t} =& \f rac{1}{2} \l eft( X\l eft( t \r ight) \r ight)^{2} kB - kD \m athrm{X2}\l eft( t \r ight)
186
- \e nd{align}
187
- $" , " \r\n " => " \n " )
189
+ @test latexify (rn; form = :ode ) == replace (
190
+ raw " $\b egin{align}
191
+ \f rac{\m athrm{d} X\l eft( t \r ight)}{\m athrm{d}t} =& p - d X\l eft( t \r ight) + 2 kD \m athrm{X2}\l eft( t \r ight) - \l eft( X\l eft( t \r ight) \r ight)^{2} kB \\
192
+ \f rac{\m athrm{d} \m athrm{X2}\l eft( t \r ight)}{\m athrm{d}t} =& - kD \m athrm{X2}\l eft( t \r ight) + \f rac{1}{2} \l eft( X\l eft( t \r ight) \r ight)^{2} kB
193
+ \e nd{align}
194
+ $" , " \r\n " => " \n " )
195
+
196
+ # Currently latexify doesn't handle SDE systems properly, and they look identical to ode systems (https://github.com/SciML/ModelingToolkit.jl/issues/2782).
197
+ @test_broken false
188
198
189
199
# Tests that erroneous form gives error.
190
200
@test_throws ErrorException latexify (rn; form= :xxx )
@@ -229,14 +239,15 @@ let
229
239
end
230
240
231
241
# Latexify.@generate_test latexify(rn)
232
- @test_broken latexify (rn) == replace (
233
- raw " \b egin{align*}
234
- \v arnothing &\x rightarrow{p} (m + n) \m athrm{X}
235
- \e nd{align*}
236
- " , " \r\n " => " \n " )
242
+ @test latexify (rn) == replace (
243
+ raw " \b egin{align*}
244
+ \m athrm{Y} &\x rightarrow{Y k} \v arnothing
245
+ \e nd{align*}
246
+ " , " \r\n " => " \n " )
237
247
end
238
248
239
249
# Checks when combined with equations (nonlinear system).
250
+ # Technically tests would work, however, the display is non-ideal (https://github.com/SciML/Catalyst.jl/issues/927).
240
251
let
241
252
t = default_t ()
242
253
base_network = @reaction_network begin
247
258
extended = extend (decaying_rate, base_network)
248
259
249
260
# Latexify.@generate_test latexify(extended)
250
- @test_broken latexify (extended) == replace (
251
- raw " \b egin{align*}
252
- \m athrm{X} &\x rightarrow{k r} \v arnothing
253
- 0 &= -1 - x\l eft( t \r ight)
254
- \e nd{align*}
255
- " , " \r\n " => " \n " )
261
+ @test_broken false
256
262
257
263
# Latexify.@generate_test latexify(extended, mathjax=false)
258
- @test_broken latexify (extended, mathjax = false ) == replace (
259
- raw " \b egin{align*}
260
- \m athrm{X} &\x rightarrow{k r} \v arnothing
261
- 0 &= -1 - x\l eft( t \r ight)
262
- \e nd{align*}
263
- " , " \r\n " => " \n " )
264
+ @test_broken false
264
265
end
0 commit comments