History

postproc/tests: Add test for temporal denoise

Michael Niedermayer committed 1 year ago

Commit 26bbca81 parent 75be6694 files · +461 −0Browse files

Unified · Split

4 files
  1. libpostproc/Makefile +1 −0
  2. libpostproc/tests/temptest.c +120 −0
  3. tests/fate/libpostproc.mak +4 −0
  4. tests/ref/fate/temptest +336 −0
libpostproc/Makefile+1−0
@@ -14,3 +14,4 @@ SHLIBOBJS-$(HAVE_GNU_WINDRES) += postprocres.o · 13 unmodified lines
1414
1515 TESTPROGS = blocktest \
1616 stripetest \
17+ temptest \
libpostproc/tests/temptest.c+120−0
@@ -0,0 +1,120 @@
1+/*
2+ * Copyright (c) 2025 Michael Niedermayer
3+ *
4+ * This file is part of FFmpeg.
5+ *
6+ * FFmpeg is free software; you can redistribute it and/or
7+ * modify it under the terms of the GNU Lesser General Public
8+ * License as published by the Free Software Foundation; either
9+ * version 2.1 of the License, or (at your option) any later version.
10+ *
11+ * FFmpeg is distributed in the hope that it will be useful,
12+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14+ * Lesser General Public License for more details.
15+ *
16+ * You should have received a copy of the GNU Lesser General Public
17+ * License along with FFmpeg; if not, write to the Free Software
18+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19+ */
20+
21+#include "libavutil/frame.h"
22+#include "libavutil/adler32.h"
23+#include "libpostproc/postprocess.h"
24+
25+typedef const uint8_t *cuint8;
26+
27+static void stuff(AVFrame *frame, unsigned *state, int mul)
28+{
29+ for(int y=0; y<frame->height; y++) {
30+ for(int x=0; x<frame->width; x++) {
31+ *state= *state*1664525+1013904223;
32+ frame->data[0][x + y*frame->linesize[0]] = x*x + (y-x)*mul + ((((x+y)&0xFF)* (int64_t)(*state))>>32);
33+ }
34+ }
35+ for(int y=0; y<(frame->height+1)/2; y++) {
36+ for(int x=0; x<(frame->width+1)/2; x++) {
37+ *state= *state*1664525+1013904223;
38+ frame->data[1][x + y*frame->linesize[1]] = x + y + ((mul*(int64_t)(*state))>>32);
39+ frame->data[2][x + y*frame->linesize[2]] = mul*x - ((y*x*(int64_t)(*state))>>32);
40+ }
41+ }
42+}
43+
44+static int64_t chksum(AVFrame *f)
45+{
46+ AVAdler a = 123;
47+
48+ for(int y=0; y<f->height; y++) {
49+ a = av_adler32_update(a, &f->data[0][y*f->linesize[0]], f->width);
50+ }
51+ for(int y=0; y<(f->height+1)/2; y++) {
52+ a = av_adler32_update(a, &f->data[1][y*f->linesize[1]], (f->width+1)/2);
53+ a = av_adler32_update(a, &f->data[2][y*f->linesize[2]], (f->width+1)/2);
54+ }
55+
56+ return a;
57+}
58+
59+static int64_t test(int width, int height, const char *testname, int mul, int flags, int pict_type, int quality) {
60+ AVFrame *in = av_frame_alloc();
61+ AVFrame *out = av_frame_alloc();
62+ pp_context *context = pp_get_context(width, height, flags);
63+ pp_mode *mode = pp_get_mode_by_name_and_quality(testname, quality);
64+ int64_t ret;
65+
66+ if (!in || !out || !context || !mode) {
67+ ret = AVERROR(ENOMEM);
68+ goto end;
69+ }
70+
71+ in-> width = out->width = width;
72+ in->height = out->height = height;
73+ in->format = out->format = AV_PIX_FMT_YUV420P;
74+
75+ ret = av_frame_get_buffer(in, 0);
76+ if (ret < 0)
77+ goto end;
78+
79+ ret = av_frame_get_buffer(out, 0);
80+ if (ret < 0)
81+ goto end;
82+
83+ unsigned state = mul;
84+ for(int f=0; f<10; f++) {
85+ stuff(in, &state, mul);
86+
87+ pp_postprocess( (cuint8[]){in->data[0], in->data[1], in->data[2]}, in->linesize,
88+ out->data, out->linesize,
89+ width, height, NULL, 0,
90+ mode, context, pict_type);
91+
92+ ret += chksum(out);
93+ ret *= 1664525U;
94+ }
95+end:
96+ av_frame_free(&in);
97+ av_frame_free(&out);
98+ pp_free_context(context);
99+ pp_free_mode(mode);
100+
101+ return ret;
102+}
103+
104+int main(int argc, char **argv) {
105+
106+ for(int a=0; a<600000; a= 17*a+1) {
107+ for(int b=a; b<600000; b= 17*b+1) {
108+ for(int c=b; c<600000; c= 17*c+1) {
109+ for (int m=0; m<128; m = 3*m+1) {
110+ char buf[100];
111+ snprintf(buf, sizeof(buf), "be,tn:%d:%d:%d", a, b, c);
112+ int64_t ret = test(352, 288, buf, m, PP_FORMAT_420, 0, 11);
113+ printf("temptest %d %d %d %d result %"PRIX64"\n", a,b,c,m, ret);
114+ }
115+ }
116+ }
117+ }
118+
119+ return 0;
120+}
tests/fate/libpostproc.mak+4−0
@@ -6,5 +6,9 @@ FATE_LIBPOSTPROC += fate-stripetest · 5 unmodified lines
66 fate-stripetest: libpostproc/tests/stripetest$(EXESUF)
77 fate-stripetest: CMD = run libpostproc/tests/stripetest$(EXESUF)
88
9+FATE_LIBPOSTPROC += fate-temptest
10+fate-temptest: libpostproc/tests/temptest$(EXESUF)
11+fate-temptest: CMD = run libpostproc/tests/temptest$(EXESUF)
12+
913 FATE-$(CONFIG_POSTPROC) += $(FATE_LIBPOSTPROC)
1014 fate-libpostproc: $(FATE_LIBPOSTPROC)
tests/ref/fate/temptest+336−0
@@ -0,0 +1,336 @@
1+temptest 0 0 0 0 result 4747FD2B6BCBD98D
2+temptest 0 0 0 1 result B131E49BB453EC88
3+temptest 0 0 0 4 result 38CC2AC032A60E8E
4+temptest 0 0 0 13 result B2C1B45AE4547480
5+temptest 0 0 0 40 result 7CCF1AC011E2ACEB
6+temptest 0 0 0 121 result CEFAC9CA19A5F777
7+temptest 0 0 1 0 result 4747FD2B6BCBD98D
8+temptest 0 0 1 1 result B131E49BB453EC88
9+temptest 0 0 1 4 result 38CC2AC032A60E8E
10+temptest 0 0 1 13 result B2C1B45AE4547480
11+temptest 0 0 1 40 result 7CCF1AC011E2ACEB
12+temptest 0 0 1 121 result CEFAC9CA19A5F777
13+temptest 0 0 18 0 result 4747FD2B6BCBD98D
14+temptest 0 0 18 1 result B131E49BB453EC88
15+temptest 0 0 18 4 result 38CC2AC032A60E8E
16+temptest 0 0 18 13 result B2C1B45AE4547480
17+temptest 0 0 18 40 result 7CCF1AC011E2ACEB
18+temptest 0 0 18 121 result CEFAC9CA19A5F777
19+temptest 0 0 307 0 result 4747FD2B6BCBD98D
20+temptest 0 0 307 1 result B131E49BB453EC88
21+temptest 0 0 307 4 result 9A1F4C627F31E806
22+temptest 0 0 307 13 result B2C1B45AE4547480
23+temptest 0 0 307 40 result 7CCF1AC011E2ACEB
24+temptest 0 0 307 121 result CEFAC9CA19A5F777
25+temptest 0 0 5220 0 result A3F4794F3A735E24
26+temptest 0 0 5220 1 result 2FEB559286787E28
27+temptest 0 0 5220 4 result E77D4EBDFA3E06BF
28+temptest 0 0 5220 13 result D77446C32EEDD169
29+temptest 0 0 5220 40 result 7CCF1AC011E2ACEB
30+temptest 0 0 5220 121 result CEFAC9CA19A5F777
31+temptest 0 0 88741 0 result FBDDA11DF717CD14
32+temptest 0 0 88741 1 result FB7C8CEBFD07B08B
33+temptest 0 0 88741 4 result 677BF6D89305A705
34+temptest 0 0 88741 13 result AC256153D241FEAC
35+temptest 0 0 88741 40 result 53E5C6EFC8DA58D1
36+temptest 0 0 88741 121 result 284B4DD880549A05
37+temptest 0 1 1 0 result 4747FD2B6BCBD98D
38+temptest 0 1 1 1 result B131E49BB453EC88
39+temptest 0 1 1 4 result 38CC2AC032A60E8E
40+temptest 0 1 1 13 result B2C1B45AE4547480
41+temptest 0 1 1 40 result 7CCF1AC011E2ACEB
42+temptest 0 1 1 121 result CEFAC9CA19A5F777
43+temptest 0 1 18 0 result 4747FD2B6BCBD98D
44+temptest 0 1 18 1 result B131E49BB453EC88
45+temptest 0 1 18 4 result 38CC2AC032A60E8E
46+temptest 0 1 18 13 result B2C1B45AE4547480
47+temptest 0 1 18 40 result 7CCF1AC011E2ACEB
48+temptest 0 1 18 121 result CEFAC9CA19A5F777
49+temptest 0 1 307 0 result 4747FD2B6BCBD98D
50+temptest 0 1 307 1 result B131E49BB453EC88
51+temptest 0 1 307 4 result 9A1F4C627F31E806
52+temptest 0 1 307 13 result B2C1B45AE4547480
53+temptest 0 1 307 40 result 7CCF1AC011E2ACEB
54+temptest 0 1 307 121 result CEFAC9CA19A5F777
55+temptest 0 1 5220 0 result A3F4794F3A735E24
56+temptest 0 1 5220 1 result 2FEB559286787E28
57+temptest 0 1 5220 4 result E77D4EBDFA3E06BF
58+temptest 0 1 5220 13 result D77446C32EEDD169
59+temptest 0 1 5220 40 result 7CCF1AC011E2ACEB
60+temptest 0 1 5220 121 result CEFAC9CA19A5F777
61+temptest 0 1 88741 0 result FBDDA11DF717CD14
62+temptest 0 1 88741 1 result FB7C8CEBFD07B08B
63+temptest 0 1 88741 4 result 677BF6D89305A705
64+temptest 0 1 88741 13 result AC256153D241FEAC
65+temptest 0 1 88741 40 result 53E5C6EFC8DA58D1
66+temptest 0 1 88741 121 result 284B4DD880549A05
67+temptest 0 18 18 0 result 4747FD2B6BCBD98D
68+temptest 0 18 18 1 result B131E49BB453EC88
69+temptest 0 18 18 4 result 38CC2AC032A60E8E
70+temptest 0 18 18 13 result B2C1B45AE4547480
71+temptest 0 18 18 40 result 7CCF1AC011E2ACEB
72+temptest 0 18 18 121 result CEFAC9CA19A5F777
73+temptest 0 18 307 0 result 4747FD2B6BCBD98D
74+temptest 0 18 307 1 result B131E49BB453EC88
75+temptest 0 18 307 4 result 9A1F4C627F31E806
76+temptest 0 18 307 13 result B2C1B45AE4547480
77+temptest 0 18 307 40 result 7CCF1AC011E2ACEB
78+temptest 0 18 307 121 result CEFAC9CA19A5F777
79+temptest 0 18 5220 0 result E2D79A25DEB7D8A0
80+temptest 0 18 5220 1 result 6ECE76692ABCF8A4
81+temptest 0 18 5220 4 result E77D4EBDFA3E06BF
82+temptest 0 18 5220 13 result D77446C32EEDD169
83+temptest 0 18 5220 40 result 7CCF1AC011E2ACEB
84+temptest 0 18 5220 121 result CEFAC9CA19A5F777
85+temptest 0 18 88741 0 result FBDDA11DF717CD14
86+temptest 0 18 88741 1 result FB7C8CEBFD07B08B
87+temptest 0 18 88741 4 result 677BF6D89305A705
88+temptest 0 18 88741 13 result AC256153D241FEAC
89+temptest 0 18 88741 40 result 53E5C6EFC8DA58D1
90+temptest 0 18 88741 121 result 284B4DD880549A05
91+temptest 0 307 307 0 result 4747FD2B6BCBD98D
92+temptest 0 307 307 1 result B131E49BB453EC88
93+temptest 0 307 307 4 result B17A67893E803FB9
94+temptest 0 307 307 13 result B2C1B45AE4547480
95+temptest 0 307 307 40 result 7CCF1AC011E2ACEB
96+temptest 0 307 307 121 result CEFAC9CA19A5F777
97+temptest 0 307 5220 0 result 555181C06E0FA1AA
98+temptest 0 307 5220 1 result 3235D486256EC1AE
99+temptest 0 307 5220 4 result 964FE2F503607C70
100+temptest 0 307 5220 13 result D77446C32EEDD169
101+temptest 0 307 5220 40 result 7CCF1AC011E2ACEB
102+temptest 0 307 5220 121 result CEFAC9CA19A5F777
103+temptest 0 307 88741 0 result 797EDCC74D223AE8
104+temptest 0 307 88741 1 result 791DC89553121E5F
105+temptest 0 307 88741 4 result 46E37B54A5142319
106+temptest 0 307 88741 13 result AC256153D241FEAC
107+temptest 0 307 88741 40 result 53E5C6EFC8DA58D1
108+temptest 0 307 88741 121 result 284B4DD880549A05
109+temptest 0 5220 5220 0 result 4A2207CA23BA4CC0
110+temptest 0 5220 5220 1 result E5B4E54A5D48B507
111+temptest 0 5220 5220 4 result EA39A4876A38648F
112+temptest 0 5220 5220 13 result B6B4F5C1A6864CBD
113+temptest 0 5220 5220 40 result 7CCF1AC011E2ACEB
114+temptest 0 5220 5220 121 result CEFAC9CA19A5F777
115+temptest 0 5220 88741 0 result 706EBAB75F0C52EA
116+temptest 0 5220 88741 1 result D4F0475270F0795C
117+temptest 0 5220 88741 4 result DF8A5296FD69B527
118+temptest 0 5220 88741 13 result BB5686FA9BA23C7B
119+temptest 0 5220 88741 40 result A9201E8DBD3B9B3
120+temptest 0 5220 88741 121 result 284B4DD880549A05
121+temptest 0 88741 88741 0 result CF4F8ABE751594E0
122+temptest 0 88741 88741 1 result 9222D52614EFA86B
123+temptest 0 88741 88741 4 result DFC399F2247B7714
124+temptest 0 88741 88741 13 result 4781E2B92F5BD91B
125+temptest 0 88741 88741 40 result 8986560C6636BCBA
126+temptest 0 88741 88741 121 result 31FBA2F823230BBF
127+temptest 1 1 1 0 result 4747FD2B6BCBD98D
128+temptest 1 1 1 1 result B131E49BB453EC88
129+temptest 1 1 1 4 result 38CC2AC032A60E8E
130+temptest 1 1 1 13 result B2C1B45AE4547480
131+temptest 1 1 1 40 result 7CCF1AC011E2ACEB
132+temptest 1 1 1 121 result CEFAC9CA19A5F777
133+temptest 1 1 18 0 result 4747FD2B6BCBD98D
134+temptest 1 1 18 1 result B131E49BB453EC88
135+temptest 1 1 18 4 result 38CC2AC032A60E8E
136+temptest 1 1 18 13 result B2C1B45AE4547480
137+temptest 1 1 18 40 result 7CCF1AC011E2ACEB
138+temptest 1 1 18 121 result CEFAC9CA19A5F777
139+temptest 1 1 307 0 result 4747FD2B6BCBD98D
140+temptest 1 1 307 1 result B131E49BB453EC88
141+temptest 1 1 307 4 result 9A1F4C627F31E806
142+temptest 1 1 307 13 result B2C1B45AE4547480
143+temptest 1 1 307 40 result 7CCF1AC011E2ACEB
144+temptest 1 1 307 121 result CEFAC9CA19A5F777
145+temptest 1 1 5220 0 result A3F4794F3A735E24
146+temptest 1 1 5220 1 result 2FEB559286787E28
147+temptest 1 1 5220 4 result E77D4EBDFA3E06BF
148+temptest 1 1 5220 13 result D77446C32EEDD169
149+temptest 1 1 5220 40 result 7CCF1AC011E2ACEB
150+temptest 1 1 5220 121 result CEFAC9CA19A5F777
151+temptest 1 1 88741 0 result FBDDA11DF717CD14
152+temptest 1 1 88741 1 result FB7C8CEBFD07B08B
153+temptest 1 1 88741 4 result 677BF6D89305A705
154+temptest 1 1 88741 13 result AC256153D241FEAC
155+temptest 1 1 88741 40 result 53E5C6EFC8DA58D1
156+temptest 1 1 88741 121 result 284B4DD880549A05
157+temptest 1 18 18 0 result 4747FD2B6BCBD98D
158+temptest 1 18 18 1 result B131E49BB453EC88
159+temptest 1 18 18 4 result 38CC2AC032A60E8E
160+temptest 1 18 18 13 result B2C1B45AE4547480
161+temptest 1 18 18 40 result 7CCF1AC011E2ACEB
162+temptest 1 18 18 121 result CEFAC9CA19A5F777
163+temptest 1 18 307 0 result 4747FD2B6BCBD98D
164+temptest 1 18 307 1 result B131E49BB453EC88
165+temptest 1 18 307 4 result 9A1F4C627F31E806
166+temptest 1 18 307 13 result B2C1B45AE4547480
167+temptest 1 18 307 40 result 7CCF1AC011E2ACEB
168+temptest 1 18 307 121 result CEFAC9CA19A5F777
169+temptest 1 18 5220 0 result E2D79A25DEB7D8A0
170+temptest 1 18 5220 1 result 6ECE76692ABCF8A4
171+temptest 1 18 5220 4 result E77D4EBDFA3E06BF
172+temptest 1 18 5220 13 result D77446C32EEDD169
173+temptest 1 18 5220 40 result 7CCF1AC011E2ACEB
174+temptest 1 18 5220 121 result CEFAC9CA19A5F777
175+temptest 1 18 88741 0 result FBDDA11DF717CD14
176+temptest 1 18 88741 1 result FB7C8CEBFD07B08B
177+temptest 1 18 88741 4 result 677BF6D89305A705
178+temptest 1 18 88741 13 result AC256153D241FEAC
179+temptest 1 18 88741 40 result 53E5C6EFC8DA58D1
180+temptest 1 18 88741 121 result 284B4DD880549A05
181+temptest 1 307 307 0 result 4747FD2B6BCBD98D
182+temptest 1 307 307 1 result B131E49BB453EC88
183+temptest 1 307 307 4 result B17A67893E803FB9
184+temptest 1 307 307 13 result B2C1B45AE4547480
185+temptest 1 307 307 40 result 7CCF1AC011E2ACEB
186+temptest 1 307 307 121 result CEFAC9CA19A5F777
187+temptest 1 307 5220 0 result 555181C06E0FA1AA
188+temptest 1 307 5220 1 result 3235D486256EC1AE
189+temptest 1 307 5220 4 result 964FE2F503607C70
190+temptest 1 307 5220 13 result D77446C32EEDD169
191+temptest 1 307 5220 40 result 7CCF1AC011E2ACEB
192+temptest 1 307 5220 121 result CEFAC9CA19A5F777
193+temptest 1 307 88741 0 result 797EDCC74D223AE8
194+temptest 1 307 88741 1 result 791DC89553121E5F
195+temptest 1 307 88741 4 result 46E37B54A5142319
196+temptest 1 307 88741 13 result AC256153D241FEAC
197+temptest 1 307 88741 40 result 53E5C6EFC8DA58D1
198+temptest 1 307 88741 121 result 284B4DD880549A05
199+temptest 1 5220 5220 0 result 4A2207CA23BA4CC0
200+temptest 1 5220 5220 1 result E5B4E54A5D48B507
201+temptest 1 5220 5220 4 result EA39A4876A38648F
202+temptest 1 5220 5220 13 result B6B4F5C1A6864CBD
203+temptest 1 5220 5220 40 result 7CCF1AC011E2ACEB
204+temptest 1 5220 5220 121 result CEFAC9CA19A5F777
205+temptest 1 5220 88741 0 result 706EBAB75F0C52EA
206+temptest 1 5220 88741 1 result D4F0475270F0795C
207+temptest 1 5220 88741 4 result DF8A5296FD69B527
208+temptest 1 5220 88741 13 result BB5686FA9BA23C7B
209+temptest 1 5220 88741 40 result A9201E8DBD3B9B3
210+temptest 1 5220 88741 121 result 284B4DD880549A05
211+temptest 1 88741 88741 0 result CF4F8ABE751594E0
212+temptest 1 88741 88741 1 result 9222D52614EFA86B
213+temptest 1 88741 88741 4 result DFC399F2247B7714
214+temptest 1 88741 88741 13 result 4781E2B92F5BD91B
215+temptest 1 88741 88741 40 result 8986560C6636BCBA
216+temptest 1 88741 88741 121 result 31FBA2F823230BBF
217+temptest 18 18 18 0 result 4747FD2B6BCBD98D
218+temptest 18 18 18 1 result B131E49BB453EC88
219+temptest 18 18 18 4 result 38CC2AC032A60E8E
220+temptest 18 18 18 13 result B2C1B45AE4547480
221+temptest 18 18 18 40 result 7CCF1AC011E2ACEB
222+temptest 18 18 18 121 result CEFAC9CA19A5F777
223+temptest 18 18 307 0 result 4747FD2B6BCBD98D
224+temptest 18 18 307 1 result B131E49BB453EC88
225+temptest 18 18 307 4 result 9A1F4C627F31E806
226+temptest 18 18 307 13 result B2C1B45AE4547480
227+temptest 18 18 307 40 result 7CCF1AC011E2ACEB
228+temptest 18 18 307 121 result CEFAC9CA19A5F777
229+temptest 18 18 5220 0 result E2D79A25DEB7D8A0
230+temptest 18 18 5220 1 result 6ECE76692ABCF8A4
231+temptest 18 18 5220 4 result E77D4EBDFA3E06BF
232+temptest 18 18 5220 13 result D77446C32EEDD169
233+temptest 18 18 5220 40 result 7CCF1AC011E2ACEB
234+temptest 18 18 5220 121 result CEFAC9CA19A5F777
235+temptest 18 18 88741 0 result FBDDA11DF717CD14
236+temptest 18 18 88741 1 result FB7C8CEBFD07B08B
237+temptest 18 18 88741 4 result 677BF6D89305A705
238+temptest 18 18 88741 13 result AC256153D241FEAC
239+temptest 18 18 88741 40 result 53E5C6EFC8DA58D1
240+temptest 18 18 88741 121 result 284B4DD880549A05
241+temptest 18 307 307 0 result 4747FD2B6BCBD98D
242+temptest 18 307 307 1 result B131E49BB453EC88
243+temptest 18 307 307 4 result B17A67893E803FB9
244+temptest 18 307 307 13 result B2C1B45AE4547480
245+temptest 18 307 307 40 result 7CCF1AC011E2ACEB
246+temptest 18 307 307 121 result CEFAC9CA19A5F777
247+temptest 18 307 5220 0 result 555181C06E0FA1AA
248+temptest 18 307 5220 1 result 3235D486256EC1AE
249+temptest 18 307 5220 4 result 964FE2F503607C70
250+temptest 18 307 5220 13 result D77446C32EEDD169
251+temptest 18 307 5220 40 result 7CCF1AC011E2ACEB
252+temptest 18 307 5220 121 result CEFAC9CA19A5F777
253+temptest 18 307 88741 0 result 797EDCC74D223AE8
254+temptest 18 307 88741 1 result 791DC89553121E5F
255+temptest 18 307 88741 4 result 46E37B54A5142319
256+temptest 18 307 88741 13 result AC256153D241FEAC
257+temptest 18 307 88741 40 result 53E5C6EFC8DA58D1
258+temptest 18 307 88741 121 result 284B4DD880549A05
259+temptest 18 5220 5220 0 result 4A2207CA23BA4CC0
260+temptest 18 5220 5220 1 result E5B4E54A5D48B507
261+temptest 18 5220 5220 4 result EA39A4876A38648F
262+temptest 18 5220 5220 13 result B6B4F5C1A6864CBD
263+temptest 18 5220 5220 40 result 7CCF1AC011E2ACEB
264+temptest 18 5220 5220 121 result CEFAC9CA19A5F777
265+temptest 18 5220 88741 0 result 706EBAB75F0C52EA
266+temptest 18 5220 88741 1 result D4F0475270F0795C
267+temptest 18 5220 88741 4 result DF8A5296FD69B527
268+temptest 18 5220 88741 13 result BB5686FA9BA23C7B
269+temptest 18 5220 88741 40 result A9201E8DBD3B9B3
270+temptest 18 5220 88741 121 result 284B4DD880549A05
271+temptest 18 88741 88741 0 result CF4F8ABE751594E0
272+temptest 18 88741 88741 1 result 9222D52614EFA86B
273+temptest 18 88741 88741 4 result DFC399F2247B7714
274+temptest 18 88741 88741 13 result 4781E2B92F5BD91B
275+temptest 18 88741 88741 40 result 8986560C6636BCBA
276+temptest 18 88741 88741 121 result 31FBA2F823230BBF
277+temptest 307 307 307 0 result 4747FD2B6BCBD98D
278+temptest 307 307 307 1 result B131E49BB453EC88
279+temptest 307 307 307 4 result 8B1D395E5808B6DC
280+temptest 307 307 307 13 result B2C1B45AE4547480
281+temptest 307 307 307 40 result 7CCF1AC011E2ACEB
282+temptest 307 307 307 121 result CEFAC9CA19A5F777
283+temptest 307 307 5220 0 result A69033A091FC2080
284+temptest 307 307 5220 1 result 32870FE3DE014084
285+temptest 307 307 5220 4 result B2649AC2BCF207E4
286+temptest 307 307 5220 13 result D77446C32EEDD169
287+temptest 307 307 5220 40 result 7CCF1AC011E2ACEB
288+temptest 307 307 5220 121 result CEFAC9CA19A5F777
289+temptest 307 307 88741 0 result 6148B9F1437BB580
290+temptest 307 307 88741 1 result 6F49A40209698F7
291+temptest 307 307 88741 4 result 9E9DD518954D5E5
292+temptest 307 307 88741 13 result AC256153D241FEAC
293+temptest 307 307 88741 40 result 53E5C6EFC8DA58D1
294+temptest 307 307 88741 121 result 284B4DD880549A05
295+temptest 307 5220 5220 0 result 2A63D0D557F45750
296+temptest 307 5220 5220 1 result 9254608D71205E52
297+temptest 307 5220 5220 4 result E46F831B8295F417
298+temptest 307 5220 5220 13 result B6B4F5C1A6864CBD
299+temptest 307 5220 5220 40 result 7CCF1AC011E2ACEB
300+temptest 307 5220 5220 121 result CEFAC9CA19A5F777
301+temptest 307 5220 88741 0 result EADD24BF32F80792
302+temptest 307 5220 88741 1 result DABC179FB1931BE8
303+temptest 307 5220 88741 4 result 8AA934A713F0D4AD
304+temptest 307 5220 88741 13 result BB5686FA9BA23C7B
305+temptest 307 5220 88741 40 result A9201E8DBD3B9B3
306+temptest 307 5220 88741 121 result 284B4DD880549A05
307+temptest 307 88741 88741 0 result 1A2909BF51BC6E28
308+temptest 307 88741 88741 1 result 6614127EF76D81B3
309+temptest 307 88741 88741 4 result 9B0BC4A00B7DB1F2
310+temptest 307 88741 88741 13 result 4781E2B92F5BD91B
311+temptest 307 88741 88741 40 result 8986560C6636BCBA
312+temptest 307 88741 88741 121 result 31FBA2F823230BBF
313+temptest 5220 5220 5220 0 result 7FE69B4F88AD274B
314+temptest 5220 5220 5220 1 result 2262574F78791826
315+temptest 5220 5220 5220 4 result 597A21AB80E82FAC
316+temptest 5220 5220 5220 13 result 7F930A71275853B8
317+temptest 5220 5220 5220 40 result 7CCF1AC011E2ACEB
318+temptest 5220 5220 5220 121 result CEFAC9CA19A5F777
319+temptest 5220 5220 88741 0 result D5F7F8D19289D7C3
320+temptest 5220 5220 88741 1 result CD3256F7DFF12EE2
321+temptest 5220 5220 88741 4 result 84E2DB3DECECD065
322+temptest 5220 5220 88741 13 result A751FC922A9A8365
323+temptest 5220 5220 88741 40 result 2FA93067097FB349
324+temptest 5220 5220 88741 121 result 284B4DD880549A05
325+temptest 5220 88741 88741 0 result 684F350A49E03B23
326+temptest 5220 88741 88741 1 result 6E9FD32757E3AD46
327+temptest 5220 88741 88741 4 result 5F4C037B5CFEDACB
328+temptest 5220 88741 88741 13 result 6B03209BFA60079D
329+temptest 5220 88741 88741 40 result 8986560C6636BCBA
330+temptest 5220 88741 88741 121 result 31FBA2F823230BBF
331+temptest 88741 88741 88741 0 result B1D4DA59CAAF6224
332+temptest 88741 88741 88741 1 result 42DD8F9FBDC2D6C0
333+temptest 88741 88741 88741 4 result B40B6B1CAD3A609F
334+temptest 88741 88741 88741 13 result 221AA124FEFA141C
335+temptest 88741 88741 88741 40 result FC31041053B7B237
336+temptest 88741 88741 88741 121 result CB3E66FC05552055

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t