Skip to content

Commit cc5d746

Browse files
authored
Merge pull request #35 from psnairne/pn/stress-test
Pn/stress test
2 parents 63e5aae + 029a6c8 commit cc5d746

File tree

3 files changed

+425
-1
lines changed

3 files changed

+425
-1
lines changed

src/hgvs/hgvs_client.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ pub struct HGVSClient {
2626

2727
impl Default for HGVSClient {
2828
fn default() -> Self {
29-
let rate_limiter = Ratelimiter::builder(2, Duration::from_secs(1))
29+
let rate_limiter = Ratelimiter::builder(2, Duration::from_millis(1180))
3030
.max_tokens(2)
3131
.build()
3232
.expect("Building rate limiter failed");

tests/hgnc_stress_test.rs

Lines changed: 356 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,356 @@
1+
use pivot::hgnc::{GeneQuery, HGNCClient, HGNCData};
2+
use rstest::{fixture, rstest};
3+
4+
#[macro_export]
5+
macro_rules! skip_in_ci {
6+
($test_name:expr) => {
7+
if std::env::var("CI").is_ok() {
8+
println!("Skipping {} in CI environment", $test_name);
9+
return;
10+
}
11+
};
12+
() => {
13+
if std::env::var("CI").is_ok() {
14+
println!("Skipping {} in CI environment", module_path!());
15+
return;
16+
}
17+
};
18+
}
19+
20+
// found here: https://www.genenames.org/download/statistics-and-files/
21+
// 319 genes
22+
#[fixture]
23+
fn genes() -> String {
24+
"A1BG
25+
A1CF
26+
A2M
27+
A2ML1
28+
A3GALT2
29+
A4GALT
30+
A4GNT
31+
AAAS
32+
AACS
33+
AADAC
34+
AADACL2
35+
AADACL3
36+
AADACL4
37+
AADAT
38+
AAGAB
39+
AAK1
40+
AAMDC
41+
AAMP
42+
AANAT
43+
AAR2
44+
AARD
45+
AARS1
46+
AARS2
47+
AARSD1
48+
AASDH
49+
AASDHPPT
50+
AASS
51+
AATF
52+
AATK
53+
ABAT
54+
ABCA1
55+
ABCA2
56+
ABCA3
57+
ABCA4
58+
ABCA5
59+
ABCA6
60+
ABCA7
61+
ABCA8
62+
ABCA9
63+
ABCA10
64+
ABCA12
65+
ABCA13
66+
ABCB1
67+
ABCB4
68+
ABCB5
69+
ABCB6
70+
ABCB7
71+
ABCB8
72+
ABCB9
73+
ABCB10
74+
ABCB11
75+
ABCC1
76+
ABCC2
77+
ABCC3
78+
ABCC4
79+
ABCC5
80+
ABCC6
81+
ABCC8
82+
ABCC9
83+
ABCC10
84+
ABCC11
85+
ABCC12
86+
ABCD1
87+
ABCD2
88+
ABCD3
89+
ABCD4
90+
ABCE1
91+
ABCF1
92+
ABCF2
93+
ABCF3
94+
ABCG1
95+
ABCG2
96+
ABCG4
97+
ABCG5
98+
ABCG8
99+
ABHD1
100+
ABHD2
101+
ABHD3
102+
ABHD4
103+
ABHD5
104+
ABHD6
105+
ABHD8
106+
ABHD10
107+
ABHD11
108+
ABHD12
109+
ABHD12B
110+
ABHD13
111+
ABHD14A
112+
ABHD14B
113+
ABHD15
114+
ABHD16A
115+
ABHD16B
116+
ABHD17A
117+
ABHD17B
118+
ABHD17C
119+
ABHD18
120+
ABI1
121+
ABI2
122+
ABI3
123+
ABI3BP
124+
ABITRAM
125+
ABL1
126+
ABL2
127+
ABLIM1
128+
ABLIM2
129+
ABLIM3
130+
ABO
131+
ABR
132+
ABRA
133+
ABRACL
134+
ABRAXAS1
135+
ABRAXAS2
136+
ABT1
137+
ABTB1
138+
ABTB2
139+
ABTB3
140+
ACAA1
141+
ACAA2
142+
ACACA
143+
ACACB
144+
ACAD8
145+
ACAD9
146+
ACAD10
147+
ACAD11
148+
ACADL
149+
ACADM
150+
ACADS
151+
ACADSB
152+
ACADVL
153+
ACAN
154+
ACAP1
155+
ACAP2
156+
ACAP3
157+
ACAT1
158+
ACAT2
159+
ACBD3
160+
ACBD4
161+
ACBD5
162+
ACBD6
163+
ACBD7
164+
ACCS
165+
ACCSL
166+
ACD
167+
ACE
168+
ACE2
169+
ACER1
170+
ACER2
171+
ACER3
172+
ACHE
173+
ACIN1
174+
ACKR1
175+
ACKR2
176+
ACKR3
177+
ACKR4
178+
ACKR5
179+
ACLY
180+
ACMSD
181+
ACO1
182+
ACO2
183+
ACOD1
184+
ACOT1
185+
ACOT2
186+
ACOT4
187+
ACOT6
188+
ACOT7
189+
ACOT8
190+
ACOT9
191+
ACOT11
192+
ACOT12
193+
ACOT13
194+
ACOX1
195+
ACOX2
196+
ACOX3
197+
ACOXL
198+
ACP1
199+
ACP2
200+
ACP3
201+
ACP4
202+
ACP5
203+
ACP6
204+
ACP7
205+
ACR
206+
ACRBP
207+
ACRV1
208+
ACSBG1
209+
ACSBG2
210+
ACSF2
211+
ACSF3
212+
ACSL1
213+
ACSL3
214+
ACSL4
215+
ACSL5
216+
ACSL6
217+
ACSM1
218+
ACSM2A
219+
ACSM2B
220+
ACSM3
221+
ACSM4
222+
ACSM5
223+
ACSM6
224+
ACSS1
225+
ACSS2
226+
ACSS3
227+
ACTA1
228+
ACTA2
229+
ACTB
230+
ACTBL2
231+
ACTC1
232+
ACTG1
233+
ACTG2
234+
ACTL6A
235+
ACTL6B
236+
ACTL7A
237+
ACTL7B
238+
ACTL8
239+
ACTL9
240+
ACTL10
241+
ACTMAP
242+
ACTN1
243+
ACTN2
244+
ACTN3
245+
ACTN4
246+
ACTR1A
247+
ACTR1B
248+
ACTR2
249+
ACTR3
250+
ACTR3B
251+
ACTR3C
252+
ACTR5
253+
ACTR6
254+
ACTR8
255+
ACTR10
256+
ACTRT1
257+
ACTRT2
258+
ACTRT3
259+
ACVR1
260+
ACVR1B
261+
ACVR1C
262+
ACVR2A
263+
ACVR2B
264+
ACVRL1
265+
ACY1
266+
ACY3
267+
ACYP1
268+
ACYP2
269+
ADA
270+
ADA2
271+
ADAD1
272+
ADAD2
273+
ADAM2
274+
ADAM7
275+
ADAM8
276+
ADAM9
277+
ADAM10
278+
ADAM11
279+
ADAM12
280+
ADAM15
281+
ADAM17
282+
ADAM18
283+
ADAM19
284+
ADAM20
285+
ADAM21
286+
ADAM22
287+
ADAM23
288+
ADAM28
289+
ADAM29
290+
ADAM30
291+
ADAM32
292+
ADAM33
293+
ADAMDEC1
294+
ADAMTS1
295+
ADAMTS2
296+
ADAMTS3
297+
ADAMTS4
298+
ADAMTS5
299+
ADAMTS6
300+
ADAMTS7
301+
ADAMTS8
302+
ADAMTS9
303+
ADAMTS10
304+
ADAMTS12
305+
ADAMTS13
306+
ADAMTS14
307+
ADAMTS15
308+
ADAMTS16
309+
ADAMTS17
310+
ADAMTS18
311+
ADAMTS19
312+
ADAMTS20
313+
ADAMTSL1
314+
ADAMTSL2
315+
ADAMTSL3
316+
ADAMTSL4
317+
ADAMTSL5
318+
ADAP1
319+
ADAP2
320+
ADAR
321+
ADARB1
322+
ADARB2
323+
ADAT1
324+
ADAT2
325+
ADAT3
326+
ADCK1
327+
ADCK2
328+
ADCK5
329+
ADCY1
330+
ADCY2
331+
ADCY3
332+
ADCY4
333+
ADCY5
334+
ADCY6
335+
ADCY7
336+
ADCY8
337+
ADCY9
338+
ADCY10
339+
ADCYAP1
340+
ADCYAP1R1
341+
ADD1
342+
ADD2"
343+
.to_string()
344+
}
345+
346+
#[rstest]
347+
fn hgnc_stress_test(genes: String) {
348+
skip_in_ci!();
349+
let client = HGNCClient::default();
350+
let gene_vec = genes.lines().collect::<Vec<&str>>();
351+
for gene in gene_vec {
352+
let query = GeneQuery::Symbol(gene);
353+
let gene_doc = client.request_gene_data(query).unwrap();
354+
assert_eq!(gene_doc.symbol.unwrap(), gene);
355+
}
356+
}

0 commit comments

Comments
 (0)