1 /**
2 * UGENE - Integrated Bioinformatics Tools.
3 * Copyright (C) 2008-2021 UniPro <ugene@unipro.ru>
4 * http://ugene.net
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program 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
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 * MA 02110-1301, USA.
20 */
21
22 #include "CInterfaceSasTests.h"
23
24 #include <QFileInfo>
25
26 #include <U2Core/AppContext.h>
27 #include <U2Core/GAutoDeleteList.h>
28 #include <U2Core/Log.h>
29 #include <U2Core/U2OpStatusUtils.h>
30 #include <U2Core/global.h>
31
32 #include <U2Lang/ActorModel.h>
33 #include <U2Lang/ActorPrototypeRegistry.h>
34 #include <U2Lang/WorkflowEnv.h>
35
36 #include "SchemeSimilarityUtils.h"
37
getCommonDataDir()38 static QString getCommonDataDir() {
39 QString commonDataDir = qgetenv("COMMON_DATA_DIR");
40 QString defaultCommonDataDir = U2::AppContext::getWorkingDirectoryPath() +
41 (isOsMac() ? "/../../../../../../test/_common_data" : "/../../test/_common_data");
42 if (commonDataDir.isEmpty()) {
43 commonDataDir = defaultCommonDataDir;
44 } else if (!QFileInfo::exists(commonDataDir)) {
45 U2::coreLog.error(QString("COMMON_DATA_DIR doesn't exist: '%1'. The default path is set: '%2'.").arg(commonDataDir).arg(defaultCommonDataDir));
46 commonDataDir = defaultCommonDataDir;
47 }
48 return commonDataDir + (commonDataDir.endsWith("/") ? "" : "/");
49 }
50
51 static const QString WD_SCHEMES_PATH = getCommonDataDir() + "cmdline/wd-sas-schemes/";
52
getActorDisplayName(const QString & actorId,QString & actorName)53 static U2ErrorType getActorDisplayName(const QString &actorId, QString &actorName) {
54 U2::Workflow::ActorPrototypeRegistry *prototypeRegistry = U2::Workflow::WorkflowEnv::getProtoRegistry();
55 CHECK(nullptr != prototypeRegistry, U2_INVALID_CALL);
56 U2::Workflow::ActorPrototype *prototype = prototypeRegistry->getProto(actorId);
57 CHECK(nullptr != prototype, U2_UNKNOWN_ELEMENT);
58 actorName = prototype->getDisplayName();
59 return U2_OK;
60 }
61
toDisposableWString(const QString & source)62 static wchar_t *toDisposableWString(const QString &source) {
63 CHECK(!source.isEmpty(), nullptr);
64 wchar_t *result = new wchar_t[source.size() + 1];
65 source.toWCharArray(result);
66 result[source.size()] = '\0';
67 return result;
68 }
69
70 namespace U2 {
71
72 ///////////// TESTS IMPLEMENTATION ///////////////////////////////////////////////////////
73
IMPLEMENT_TEST(CInterfaceSasTests,align_with_clustalO_sas)74 IMPLEMENT_TEST(CInterfaceSasTests, align_with_clustalO_sas) {
75 SchemeHandle scheme = nullptr;
76 U2ErrorType error = createSas(L"ClustalO", nullptr, nullptr, &scheme);
77 CHECK_U2_ERROR(error);
78 QString readerName;
79 error = getActorDisplayName("read-msa", readerName);
80 CHECK_U2_ERROR(error);
81 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
82 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
83 CHECK_U2_ERROR(error);
84
85 U2OpStatusImpl stateInfo;
86 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
87 WD_SCHEMES_PATH + "align_with_clustalO.uwl",
88 stateInfo);
89 CHECK_NO_ERROR(stateInfo);
90
91 releaseScheme(scheme);
92 }
IMPLEMENT_TEST(CInterfaceSasTests,align_with_clustalW_sas)93 IMPLEMENT_TEST(CInterfaceSasTests, align_with_clustalW_sas) {
94 SchemeHandle scheme = nullptr;
95 U2ErrorType error = createSas(L"clustalw", nullptr, nullptr, &scheme);
96 CHECK_U2_ERROR(error);
97 QString readerName;
98 error = getActorDisplayName("read-msa", readerName);
99 CHECK_U2_ERROR(error);
100 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
101 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
102 CHECK_U2_ERROR(error);
103
104 U2OpStatusImpl stateInfo;
105 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
106 WD_SCHEMES_PATH + "align_with_clustalW.uwl",
107 stateInfo);
108 CHECK_NO_ERROR(stateInfo);
109
110 releaseScheme(scheme);
111 }
IMPLEMENT_TEST(CInterfaceSasTests,align_with_kalign_sas)112 IMPLEMENT_TEST(CInterfaceSasTests, align_with_kalign_sas) {
113 SchemeHandle scheme = nullptr;
114 U2ErrorType error = createSas(L"kalign", nullptr, nullptr, &scheme);
115 CHECK_U2_ERROR(error);
116 QString readerName;
117 error = getActorDisplayName("read-msa", readerName);
118 CHECK_U2_ERROR(error);
119 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
120 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
121 CHECK_U2_ERROR(error);
122
123 U2OpStatusImpl stateInfo;
124 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
125 WD_SCHEMES_PATH + "align_with_kalign.uwl",
126 stateInfo);
127 CHECK_NO_ERROR(stateInfo);
128
129 releaseScheme(scheme);
130 }
IMPLEMENT_TEST(CInterfaceSasTests,align_with_mafft_sas)131 IMPLEMENT_TEST(CInterfaceSasTests, align_with_mafft_sas) {
132 SchemeHandle scheme = nullptr;
133 U2ErrorType error = createSas(L"mafft", nullptr, nullptr, &scheme);
134 CHECK_U2_ERROR(error);
135 QString readerName;
136 error = getActorDisplayName("read-msa", readerName);
137 CHECK_U2_ERROR(error);
138 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
139 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
140 CHECK_U2_ERROR(error);
141
142 U2OpStatusImpl stateInfo;
143 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
144 WD_SCHEMES_PATH + "align_with_mafft.uwl",
145 stateInfo);
146 CHECK_NO_ERROR(stateInfo);
147
148 releaseScheme(scheme);
149 }
IMPLEMENT_TEST(CInterfaceSasTests,align_with_muscle_sas)150 IMPLEMENT_TEST(CInterfaceSasTests, align_with_muscle_sas) {
151 SchemeHandle scheme = nullptr;
152 U2ErrorType error = createSas(L"muscle", nullptr, nullptr, &scheme);
153 CHECK_U2_ERROR(error);
154 QString readerName;
155 error = getActorDisplayName("read-msa", readerName);
156 CHECK_U2_ERROR(error);
157 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
158 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
159 CHECK_U2_ERROR(error);
160
161 U2OpStatusImpl stateInfo;
162 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
163 WD_SCHEMES_PATH + "align_with_muscle.uwl",
164 stateInfo);
165 CHECK_NO_ERROR(stateInfo);
166
167 releaseScheme(scheme);
168 }
IMPLEMENT_TEST(CInterfaceSasTests,align_with_tcoffee_sas)169 IMPLEMENT_TEST(CInterfaceSasTests, align_with_tcoffee_sas) {
170 SchemeHandle scheme = nullptr;
171 U2ErrorType error = createSas(L"tcoffee", nullptr, nullptr, &scheme);
172 CHECK_U2_ERROR(error);
173 QString readerName;
174 error = getActorDisplayName("read-msa", readerName);
175 CHECK_U2_ERROR(error);
176 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
177 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
178 CHECK_U2_ERROR(error);
179
180 U2OpStatusImpl stateInfo;
181 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
182 WD_SCHEMES_PATH + "align_with_tcoffee.uwl",
183 stateInfo);
184 CHECK_NO_ERROR(stateInfo);
185
186 releaseScheme(scheme);
187 }
IMPLEMENT_TEST(CInterfaceSasTests,annotate_with_uql_sas)188 IMPLEMENT_TEST(CInterfaceSasTests, annotate_with_uql_sas) {
189 SchemeHandle scheme = nullptr;
190 U2ErrorType error = createSas(L"query", nullptr, nullptr, &scheme);
191 CHECK_U2_ERROR(error);
192 QString readerName;
193 error = getActorDisplayName("read-sequence", readerName);
194 CHECK_U2_ERROR(error);
195 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
196 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
197 CHECK_U2_ERROR(error);
198
199 U2OpStatusImpl stateInfo;
200 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
201 WD_SCHEMES_PATH + "annotate_with_uql.uwl",
202 stateInfo);
203 CHECK_NO_ERROR(stateInfo);
204
205 releaseScheme(scheme);
206 }
207
IMPLEMENT_TEST(CInterfaceSasTests,basic_align_sas)208 IMPLEMENT_TEST(CInterfaceSasTests, basic_align_sas) {
209 SchemeHandle scheme = nullptr;
210 U2ErrorType error = createSas(L"muscle", nullptr, nullptr, &scheme);
211 CHECK_U2_ERROR(error);
212 QString writerName;
213 error = getActorDisplayName("write-msa", writerName);
214 CHECK_U2_ERROR(error);
215 gauto_array<wchar_t> wWriterName(toDisposableWString(writerName));
216 error = setSchemeElementAttribute(scheme, wWriterName.get(), L"document-format", L"stockholm");
217 CHECK_U2_ERROR(error);
218
219 U2OpStatusImpl stateInfo;
220 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
221 WD_SCHEMES_PATH + "basic_align.uwl",
222 stateInfo);
223 CHECK_NO_ERROR(stateInfo);
224
225 releaseScheme(scheme);
226 }
227
IMPLEMENT_TEST(CInterfaceSasTests,build_weight_matrix_sas)228 IMPLEMENT_TEST(CInterfaceSasTests, build_weight_matrix_sas) {
229 SchemeHandle scheme = nullptr;
230 U2ErrorType error = createSas(L"wmatrix-build", nullptr, nullptr, &scheme);
231 CHECK_U2_ERROR(error);
232 QString readerName;
233 error = getActorDisplayName("read-msa", readerName);
234 CHECK_U2_ERROR(error);
235 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
236 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
237 CHECK_U2_ERROR(error);
238
239 U2OpStatusImpl stateInfo;
240 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
241 WD_SCHEMES_PATH + "build_weight_matrix.uwl",
242 stateInfo);
243 CHECK_NO_ERROR(stateInfo);
244
245 releaseScheme(scheme);
246 }
IMPLEMENT_TEST(CInterfaceSasTests,cd_search_sas)247 IMPLEMENT_TEST(CInterfaceSasTests, cd_search_sas) {
248 SchemeHandle scheme = nullptr;
249 U2ErrorType error = createSas(L"cd-search", nullptr, nullptr, &scheme);
250 CHECK_U2_ERROR(error);
251 QString readerName;
252 error = getActorDisplayName("read-sequence", readerName);
253 CHECK_U2_ERROR(error);
254 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
255 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
256 CHECK_U2_ERROR(error);
257
258 U2OpStatusImpl stateInfo;
259 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
260 WD_SCHEMES_PATH + "cd_search.uwl",
261 stateInfo);
262 CHECK_NO_ERROR(stateInfo);
263
264 releaseScheme(scheme);
265 }
IMPLEMENT_TEST(CInterfaceSasTests,dna_statistics_sas)266 IMPLEMENT_TEST(CInterfaceSasTests, dna_statistics_sas) {
267 SchemeHandle scheme = nullptr;
268 U2ErrorType error = createSas(L"dna-stats", nullptr, nullptr, &scheme);
269 CHECK_U2_ERROR(error);
270 QString readerName;
271 error = getActorDisplayName("read-sequence", readerName);
272 CHECK_U2_ERROR(error);
273 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
274 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
275 CHECK_U2_ERROR(error);
276
277 U2OpStatusImpl stateInfo;
278 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
279 WD_SCHEMES_PATH + "dna_statistics.uwl",
280 stateInfo);
281 CHECK_NO_ERROR(stateInfo);
282
283 releaseScheme(scheme);
284 }
285
IMPLEMENT_TEST(CInterfaceSasTests,faqual2fastq_sas)286 IMPLEMENT_TEST(CInterfaceSasTests, faqual2fastq_sas) {
287 SchemeHandle scheme = nullptr;
288 U2ErrorType error = createSas(L"import-phred-qualities", nullptr, nullptr, &scheme);
289 CHECK_U2_ERROR(error);
290 QString readerName;
291 error = getActorDisplayName("write-sequence", readerName);
292 CHECK_U2_ERROR(error);
293 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
294 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"document-format", L"fastq");
295 CHECK_U2_ERROR(error);
296
297 U2OpStatusImpl stateInfo;
298 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
299 WD_SCHEMES_PATH + "faqual2fastq.uwl",
300 stateInfo);
301 CHECK_NO_ERROR(stateInfo);
302
303 releaseScheme(scheme);
304 }
305
IMPLEMENT_TEST(CInterfaceSasTests,filter_annotations_by_name_sas)306 IMPLEMENT_TEST(CInterfaceSasTests, filter_annotations_by_name_sas) {
307 SchemeHandle scheme = nullptr;
308 U2ErrorType error = createSas(L"filter-annotations", nullptr, nullptr, &scheme);
309 CHECK_U2_ERROR(error);
310 QString readerName;
311 error = getActorDisplayName("read-annotations", readerName);
312 CHECK_U2_ERROR(error);
313 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
314 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
315 CHECK_U2_ERROR(error);
316
317 U2OpStatusImpl stateInfo;
318 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
319 WD_SCHEMES_PATH + "filter_annotations_by_name.uwl",
320 stateInfo);
321 CHECK_NO_ERROR(stateInfo);
322
323 releaseScheme(scheme);
324 }
IMPLEMENT_TEST(CInterfaceSasTests,find_repeats_sas)325 IMPLEMENT_TEST(CInterfaceSasTests, find_repeats_sas) {
326 SchemeHandle scheme = nullptr;
327 U2ErrorType error = createSas(L"repeats-search", nullptr, nullptr, &scheme);
328 CHECK_U2_ERROR(error);
329 QString readerName;
330 error = getActorDisplayName("read-sequence", readerName);
331 CHECK_U2_ERROR(error);
332 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
333 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
334 CHECK_U2_ERROR(error);
335 QString algoName;
336 error = getActorDisplayName("repeats-search", algoName);
337 CHECK_U2_ERROR(error);
338 gauto_array<wchar_t> wAlgoName(toDisposableWString(algoName));
339 error = setSchemeElementAttribute(scheme, wAlgoName.get(), L"algorithm", L"0");
340 CHECK_U2_ERROR(error);
341 error = setSchemeElementAttribute(scheme, wAlgoName.get(), L"exclude-tandems", L"false");
342 CHECK_U2_ERROR(error);
343 error = setSchemeElementAttribute(scheme, wAlgoName.get(), L"filter-algorithm", L"0");
344 CHECK_U2_ERROR(error);
345 error = setSchemeElementAttribute(scheme, wAlgoName.get(), L"identity", L"100");
346 CHECK_U2_ERROR(error);
347 error = setSchemeElementAttribute(scheme, wAlgoName.get(), L"inverted", L"false");
348 CHECK_U2_ERROR(error);
349 error = setSchemeElementAttribute(scheme, wAlgoName.get(), L"max-distance", L"5000");
350 CHECK_U2_ERROR(error);
351 error = setSchemeElementAttribute(scheme, wAlgoName.get(), L"min-distance", L"0");
352 CHECK_U2_ERROR(error);
353 error = setSchemeElementAttribute(scheme, wAlgoName.get(), L"min-length", L"5");
354 CHECK_U2_ERROR(error);
355 error = setSchemeElementAttribute(scheme, wAlgoName.get(), L"threads", L"0");
356 CHECK_U2_ERROR(error);
357
358 U2OpStatusImpl stateInfo;
359 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
360 WD_SCHEMES_PATH + "find_repeats.uwl",
361 stateInfo);
362 CHECK_NO_ERROR(stateInfo);
363
364 releaseScheme(scheme);
365 }
IMPLEMENT_TEST(CInterfaceSasTests,hmm2_build_sas)366 IMPLEMENT_TEST(CInterfaceSasTests, hmm2_build_sas) {
367 SchemeHandle scheme = nullptr;
368 U2ErrorType error = createSas(L"hmm2-build", nullptr, nullptr, &scheme);
369 CHECK_U2_ERROR(error);
370 QString readerName;
371 error = getActorDisplayName("read-msa", readerName);
372 CHECK_U2_ERROR(error);
373 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
374 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
375 CHECK_U2_ERROR(error);
376
377 U2OpStatusImpl stateInfo;
378 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
379 WD_SCHEMES_PATH + "hmm2_build.uwl",
380 stateInfo);
381 CHECK_NO_ERROR(stateInfo);
382
383 releaseScheme(scheme);
384 }
IMPLEMENT_TEST(CInterfaceSasTests,import_phred_qualities_sas)385 IMPLEMENT_TEST(CInterfaceSasTests, import_phred_qualities_sas) {
386 SchemeHandle scheme = nullptr;
387 U2ErrorType error = createSas(L"import-phred-qualities", nullptr, nullptr, &scheme);
388 CHECK_U2_ERROR(error);
389 QString readerName;
390 CHECK_U2_ERROR(error);
391 error = getActorDisplayName("read-sequence", readerName);
392 CHECK_U2_ERROR(error);
393 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
394 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
395 CHECK_U2_ERROR(error);
396
397 U2OpStatusImpl stateInfo;
398 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
399 WD_SCHEMES_PATH + "import_phred_qualities.uwl",
400 stateInfo);
401 CHECK_NO_ERROR(stateInfo);
402
403 releaseScheme(scheme);
404 }
405
IMPLEMENT_TEST(CInterfaceSasTests,join_sequences_into_alignment_sas)406 IMPLEMENT_TEST(CInterfaceSasTests, join_sequences_into_alignment_sas) {
407 SchemeHandle scheme = nullptr;
408 U2ErrorType error = createSas(L"sequences-to-msa", nullptr, nullptr, &scheme);
409 CHECK_U2_ERROR(error);
410 QString readerName;
411 error = getActorDisplayName("read-sequence", readerName);
412 CHECK_U2_ERROR(error);
413 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
414 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
415 CHECK_U2_ERROR(error);
416
417 U2OpStatusImpl stateInfo;
418 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
419 WD_SCHEMES_PATH + "join_sequences_into_alignment.uwl",
420 stateInfo);
421 CHECK_NO_ERROR(stateInfo);
422
423 releaseScheme(scheme);
424 }
425
IMPLEMENT_TEST(CInterfaceSasTests,local_blast_plus_search_sas)426 IMPLEMENT_TEST(CInterfaceSasTests, local_blast_plus_search_sas) {
427 SchemeHandle scheme = nullptr;
428 U2ErrorType error = createSas(L"blast-plus", nullptr, nullptr, &scheme);
429 CHECK_U2_ERROR(error);
430 QString readerName;
431 error = getActorDisplayName("read-sequence", readerName);
432 CHECK_U2_ERROR(error);
433 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
434 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
435 CHECK_U2_ERROR(error);
436
437 U2OpStatusImpl stateInfo;
438 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
439 WD_SCHEMES_PATH + "local_blast_plus_search.uwl",
440 stateInfo);
441 CHECK_NO_ERROR(stateInfo);
442
443 releaseScheme(scheme);
444 }
IMPLEMENT_TEST(CInterfaceSasTests,merge_annotations_sas)445 IMPLEMENT_TEST(CInterfaceSasTests, merge_annotations_sas) {
446 SchemeHandle scheme = nullptr;
447 U2ErrorType error = createSas(L"import-annotations", nullptr, nullptr, &scheme);
448 CHECK_U2_ERROR(error);
449 QString readerName;
450 error = getActorDisplayName("read-annotations", readerName);
451 CHECK_U2_ERROR(error);
452 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
453 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
454 CHECK_U2_ERROR(error);
455
456 U2OpStatusImpl stateInfo;
457 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
458 WD_SCHEMES_PATH + "merge_annotations.uwl",
459 stateInfo);
460 CHECK_NO_ERROR(stateInfo);
461
462 releaseScheme(scheme);
463 }
IMPLEMENT_TEST(CInterfaceSasTests,merge_assemblies_with_cuffmerge_sas)464 IMPLEMENT_TEST(CInterfaceSasTests, merge_assemblies_with_cuffmerge_sas) {
465 SchemeHandle scheme = nullptr;
466 U2ErrorType error = createSas(L"cuffmerge", nullptr, nullptr, &scheme);
467 CHECK_U2_ERROR(error);
468 QString readerName;
469 error = getActorDisplayName("read-annotations", readerName);
470 CHECK_U2_ERROR(error);
471 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
472 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
473 CHECK_U2_ERROR(error);
474
475 U2OpStatusImpl stateInfo;
476 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
477 WD_SCHEMES_PATH + "merge_assemblies_with_cuffmerge.uwl",
478 stateInfo);
479 CHECK_NO_ERROR(stateInfo);
480
481 releaseScheme(scheme);
482 }
IMPLEMENT_TEST(CInterfaceSasTests,orf_marker_sas)483 IMPLEMENT_TEST(CInterfaceSasTests, orf_marker_sas) {
484 SchemeHandle scheme = nullptr;
485 U2ErrorType error = createSas(L"orf-search", nullptr, nullptr, &scheme);
486 CHECK_U2_ERROR(error);
487 QString readerName;
488 error = getActorDisplayName("read-sequence", readerName);
489 CHECK_U2_ERROR(error);
490 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
491 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
492 CHECK_U2_ERROR(error);
493
494 U2OpStatusImpl stateInfo;
495 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
496 WD_SCHEMES_PATH + "orf_marker.uwl",
497 stateInfo);
498 CHECK_NO_ERROR(stateInfo);
499
500 releaseScheme(scheme);
501 }
IMPLEMENT_TEST(CInterfaceSasTests,remote_blast_sas)502 IMPLEMENT_TEST(CInterfaceSasTests, remote_blast_sas) {
503 SchemeHandle scheme = nullptr;
504 U2ErrorType error = createSas(L"blast-ncbi", nullptr, nullptr, &scheme);
505 CHECK_U2_ERROR(error);
506 QString readerName;
507 error = getActorDisplayName("read-sequence", readerName);
508 CHECK_U2_ERROR(error);
509 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
510 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
511 CHECK_U2_ERROR(error);
512
513 U2OpStatusImpl stateInfo;
514 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
515 WD_SCHEMES_PATH + "remote_blast.uwl",
516 stateInfo);
517 CHECK_NO_ERROR(stateInfo);
518
519 releaseScheme(scheme);
520 }
IMPLEMENT_TEST(CInterfaceSasTests,reverse_complement_sas)521 IMPLEMENT_TEST(CInterfaceSasTests, reverse_complement_sas) {
522 SchemeHandle scheme = nullptr;
523 U2ErrorType error = createSas(L"reverse-complement", nullptr, nullptr, &scheme);
524 CHECK_U2_ERROR(error);
525 QString readerName;
526 error = getActorDisplayName("read-sequence", readerName);
527 CHECK_U2_ERROR(error);
528 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
529 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
530 CHECK_U2_ERROR(error);
531
532 U2OpStatusImpl stateInfo;
533 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
534 WD_SCHEMES_PATH + "reverse_complement.uwl",
535 stateInfo);
536 CHECK_NO_ERROR(stateInfo);
537
538 releaseScheme(scheme);
539 }
IMPLEMENT_TEST(CInterfaceSasTests,split_alignment_into_sequences_sas)540 IMPLEMENT_TEST(CInterfaceSasTests, split_alignment_into_sequences_sas) {
541 SchemeHandle scheme = nullptr;
542 U2ErrorType error = createSas(L"convert-alignment-to-sequence", nullptr, nullptr, &scheme);
543 CHECK_U2_ERROR(error);
544 QString readerName;
545 error = getActorDisplayName("read-msa", readerName);
546 CHECK_U2_ERROR(error);
547 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
548 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
549 CHECK_U2_ERROR(error);
550
551 U2OpStatusImpl stateInfo;
552 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
553 WD_SCHEMES_PATH + "split_alignment_into_sequences.uwl",
554 stateInfo);
555 CHECK_NO_ERROR(stateInfo);
556
557 releaseScheme(scheme);
558 }
IMPLEMENT_TEST(CInterfaceSasTests,split_assembly_into_sequences_sas)559 IMPLEMENT_TEST(CInterfaceSasTests, split_assembly_into_sequences_sas) {
560 SchemeHandle scheme = nullptr;
561 U2ErrorType error = createSas(L"assembly-to-sequences", nullptr, nullptr, &scheme);
562 CHECK_U2_ERROR(error);
563 QString readerName;
564 error = getActorDisplayName("read-assembly", readerName);
565 CHECK_U2_ERROR(error);
566 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
567 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
568 CHECK_U2_ERROR(error);
569
570 U2OpStatusImpl stateInfo;
571 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
572 WD_SCHEMES_PATH + "split_assembly_into_sequences.uwl",
573 stateInfo);
574 CHECK_NO_ERROR(stateInfo);
575
576 releaseScheme(scheme);
577 }
IMPLEMENT_TEST(CInterfaceSasTests,text2sequence_sas)578 IMPLEMENT_TEST(CInterfaceSasTests, text2sequence_sas) {
579 SchemeHandle scheme = nullptr;
580 U2ErrorType error = createSas(L"convert-text-to-sequence", nullptr, nullptr, &scheme);
581 CHECK_U2_ERROR(error);
582 QString readerName;
583 error = getActorDisplayName("read-text", readerName);
584 CHECK_U2_ERROR(error);
585 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
586 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
587 CHECK_U2_ERROR(error);
588
589 U2OpStatusImpl stateInfo;
590 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
591 WD_SCHEMES_PATH + "text2sequence.uwl",
592 stateInfo);
593 CHECK_NO_ERROR(stateInfo);
594
595 releaseScheme(scheme);
596 }
IMPLEMENT_TEST(CInterfaceSasTests,extract_consensus_sas)597 IMPLEMENT_TEST(CInterfaceSasTests, extract_consensus_sas) {
598 SchemeHandle scheme = nullptr;
599 U2ErrorType error = createSas(L"extract-consensus", nullptr, nullptr, &scheme);
600 CHECK_U2_ERROR(error);
601 QString readerName;
602 error = getActorDisplayName("read-assembly", readerName);
603 CHECK_U2_ERROR(error);
604 gauto_array<wchar_t> wReaderName(toDisposableWString(readerName));
605 error = setSchemeElementAttribute(scheme, wReaderName.get(), L"url-in.dataset", L"Dataset 1");
606 CHECK_U2_ERROR(error);
607
608 U2OpStatusImpl stateInfo;
609 SchemeSimilarityUtils::checkSchemesSimilarity(scheme,
610 WD_SCHEMES_PATH + "consensus.uwl",
611 stateInfo);
612 CHECK_NO_ERROR(stateInfo);
613
614 releaseScheme(scheme);
615 }
616
617 } // namespace U2
618