Passed
Push — master ( 9e6bed...ccd378 )
by Ken M.
01:08
created

test_keywords_finder   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 104
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 62
dl 0
loc 104
rs 10
c 0
b 0
f 0
wmc 6

3 Methods

Rating   Name   Duplication   Size   Complexity  
A Tests.test_Basics() 0 3 2
A Tests.test_Extra() 0 3 2
A Tests.test_Edge() 0 3 2
1
import unittest
2
3
from keywords_finder import checkio
4
5
6
class Tests(unittest.TestCase):
7
    TESTS = {
8
        "Basics": [
9
            {
10
                "input": ["This is only a text example for task example.", "example"],
11
                "answer": "This is only a text <span>example</span> for task <span>example</span>.",
12
            },
13
            {
14
                "input": [
15
                    "Python is a widely used high-level programming language.",
16
                    "pyThoN",
17
                ],
18
                "answer": "<span>Python</span> is a widely used high-level programming language.",
19
            },
20
            {
21
                "input": [
22
                    "It is experiment for control groups with similar distributions.",
23
                    "is im",
24
                ],
25
                "answer": "It <span>is</span> exper<span>im</span>ent for control groups with s<span>im</span>ilar d<span>is</span>tributions.",
26
            },
27
            {
28
                "input": [
29
                    "The National Aeronautics and Space Administration (NASA).",
30
                    "nasa  THE",
31
                ],
32
                "answer": "<span>The</span> National Aeronautics and Space Administration (<span>NASA</span>).",
33
            },
34
            {
35
                "input": ["Did you find anything?", "word space tree"],
36
                "answer": "Did you find anything?",
37
            },
38
            {
39
                "input": ["Hello World! Or LOL", "hell world or lo"],
40
                "answer": "<span>Hello</span> <span>World</span>! <span>Or</span> <span>LO</span>L",
41
            },
42
        ],
43
        "Edge": [
44
            {"input": ["", ""], "answer": ""},
45
            {"input": ["", "find"], "answer": ""},
46
            {"input": ["WORd", ""], "answer": "WORd"},
47
            {"input": ["one", "one"], "answer": "<span>one</span>"},
48
            {
49
                "input": ["123456789", "3 6"],
50
                "answer": "12<span>3</span>45<span>6</span>789",
51
            },
52
            {"input": ["OnE", "oNe"], "answer": "<span>OnE</span>"},
53
            {
54
                "input": ["onetwothree", "three two one"],
55
                "answer": "<span>one</span><span>two</span><span>three</span>",
56
            },
57
            {
58
                "input": ["JabberWocky", "jabber erwo ock"],
59
                "answer": "<span>JabberWock</span>y",
60
            },
61
            {
62
                "input": [
63
                    "Y0ejVFvAqaPPH1!qq!sx HY!fEDdmeiL0J!uhEp 8UW NB!M CDs1VnUWCZDG;wXEAhW8qrfDM8.KpB04JByCXR0iZv X .Cgeu6i2394OTH O.UTnJA0k2S3E.dNE8Btz0xuajeQnGAGBbp.hRItjkO?7Is70?9z,xtKSkeZNu1cy?BodNEvLGZTn08?Zwe!J8CXrc 62lwnhLJKOG?3VpR!qU9!Z8UAgP,bVddYCaTeMrQBuH RrOTWkgfEtJe!tLsg24Oo0PJ9hFEBzO0HtAY;UK50OrU0B7Oa,2K0gk4FQdJP!cDsqi?hx!48vpRb.L8DWqZoP3e; 6FkAM2Kdfvt;dZouv4.Lvol7vdyDIf0;nVYfl1yzV7w?V?qEDi9oG3e0.ahRVPUqh913 7kuDHOxZQ 1Afa2xLhYA zUPx hCLLOqBJ8VIjtliljfJXcd OWAy4zpm Jn!NiDj6Us Ou.Sce778W8;9VoH085MHOaU,Ha9Clob0wKcToJBDbmY,GI5CtlEIKwBOwxLI0mJqwEiQO3Dzg.yeGtlNmcRsYhMKSUVZovvTmEYHHvX8qj8OzEdkzQa?BT?FD?LkAxaZh!WQSgDzWeQmMqKrRFS1HZxE7Sj8ma5KS8F;UDLCGN,;aE7u5gr!YS2pXrf1MeDzHIQxG,i5c?.NQLb,QU?1eI!!9zz4NaMiUuhQAGds z8iZbRd!m4AalEpVZQWLsd?tZ62wMpP3CynHroeT.?ANoaEn,r92OLLW3!iXp.,BatUG56?BGltE2GtqlRJ 43.S 7tWqrtnE0pfBWGnijN?hlv896.9dYrLdGR5tq,Ad7x.eKjG!qjRJ;rbcmjcgNt8VvpZTthivaT?FGKt;Om5Er8kqf9GF?NPTyEZto6RRS;w WKZyi0zJ OqlQNFyK6V3RTg2KFFwL0R7Zj6FlWljWcG ZMH?DDZ;i F qy.0kMPhOmsqkFvj1ULulES1zLk9VrwWCgE?mjB9sQAadYxy4v?!VsP,fz.BgwpNJ.IEgSX8ufxO7o;X zTyn8URX1DhCgVEoQ;gNaSowcn?OExjY7071.docTvrg28KLEskH.fSc9db!B!cA?PToRmRFQieOJ5,b dpYp9zTx1mX8DVAkASOF WV,9UC a1aL97vszgxIXRDweJvnWNAA0bDvrUA20cEeJ0OL,RHT4RPXzs72dRBuuzN3YtqyFNF7s2zztFw.SWyCx pRquYobSbsE,Uj7g?E1huD6 .,d82dVMLO4.G,VnLDCj,.5QS nvBhvOI6rLjFCkix,.qrB36h,IYwu6x; QU,eTaMmJC!lc8XPE?,?QFmW38eOGpCSlUov3lXdHVipsgcPYyo1VQd6ZK8lClwNpZ5 TDV5u2Pw;PWz4nGdMD8kophwjApjgo5U.7nwIZ1 mab! mfmfghG. z pAZIzj60mQIaw!DdocV.O?D..OOjdGehrLVL0dqgo2xByZ6bkAfHMihgeW   QW;bB6DHe3H?sxrWopeehilOr.j,JSPBUwe8rrpw5jr0QnI3xENv21?bihiP?5E! ,DiB4HKzz5oQ,wlOu!TReqRq1t1hkr?xx2jTK8 9ejjRwOglNV Z!L0K!L4H2.ZohC6iQvD!e mYgB1pX!JErYfjwX;CW2Uhr5,zlDvZ7U g3lMX7hb5TXUhc5,CytZ8P;DqLwb83,962TezFduncT?cc;HAuezA1?H8sUxvt1 DKFdyoEFG8OU00xz meHEOxJqoVm.Ch2djP6GJbCVB31e.rxjs7?plYg7mU2p Yj1V7bRlWBgBxiO6Q!q?IrJmXPAUz9CGlaxGwhiC2uUo8PlScp7eWS!w2VYWmndbjrqmgBj2r8PnJhce M0T3tvTzPz rHCSJ;ZW;ANJDDUnJUJfES;l,!1?XcTF7GZP6!TCXAJvK1T8,s ,,u8;IzYKFaW P;W9xdXRwmR,XQypa,H!8VUEOAtRJ arkCEN2I;!PX 1O2EGYcv?xsRlLStetAaXK7?j1uEiw2wYiHydaX4X r0J! XsdWq,WAZLvFj!KfiI!1!b;4uN6tZad Yf1Koe.!.J.LzXsk1 rzfray7TyqyVv!PH.aM7JXXndFLbcO2YlgiuP3c8crq!oqlbyTzsEIenaHEbg1Qp5QIzM.2 PNQ4Cvy1W14a,ppMTX  zhWqTIlr5kWtRWdc J3FIxs.16dLZgapu3vjdK;BrSQ3vcDkLFL7d8cpKWMPdenDyebpkmZU!J;hezlFYZ31?oHfmhs1phWJacptah11fqkB3Pq9Gn749gwvhZ .eBCcjQJOh725dul15xni1huwkUJhcoP7erDtEwrbL 7,qK6U5cR8Bj;y9gcPeYdTwlQ2t3OwgzGtQRiPn,IsgZ? f5 TMg2R3OsZsdT7z9 rdRcRi2gs8h62qOq5,e6LRZeQRDp2ve!CJHYE7, BR l4LZG3IEqYBLV,Lo6A9WmBB,5;Vx0r30cEmNO; enxkuiuZar.RNmpbmW96fpuT mxy!bDhWeQZIhbnNmsl,k O3blJcycWV4y,4W26M.w iKAo7; EZuPu9?fp356 lNdhi6FIX ,?nJtCRa?C8,iJ Csesj.1e1BnwUybeF M;PYcoBeul sFbqfFiX.rZj4T3x8,WuwYbY8gV5IXQQFk7RA0Xn!cw3MvSwlApnSuHT .M.L89nAQlixtIo6opbC5dtcKIXTvmWAsAUVhmFZEIzC0DY9fmjhsb4AwoM4rqpc6wMRc5UqTJLB2K2TrSeUAJZJzXKj!YX4f;Ld4mBl;;8GJLOz bkrSobHEPhmX.Cgv;RBpOyf167!o.CGc?JoXUuk?NtRevAvpE;1 xXnFooFe6RyzeORjo8pieaHAn8VDA6 Z4VvgnMwHR7Gi.gFTf;0vAED0vON..bzDs;SjAd;83BsDR5rn;XAsftoPt8jljAzdRWuLwe1QfRYxVBId3x TuIdShkybLLCGRfDeb6oa R9,N PRN05JESpQAy7EIWhd8s,dbvzxMsDOu9deHKL5aqnJlw NtyhKwqz g9vc03YeEKHM9IYygr7Y.7T0OuUdsJtZwyUP6;bZv7TIgAd2FS6 rxbnmtEFzYS8O9eJLKLLEnE483KOI;x k3vcTzd!oiOzY2u9ukZrGsr802YBGDkeQo wbnEJ4unUnvZzqFH1dVzmGnEHk2ICMWzG1WE5oR3j8ZP?2JDCzttOUr qs.gqJ; XIkWf!zpZh5E0  NSBjRHxLEZsLiTYj,zD;pUc9r,dUHWu.I1xPf2oPy?kwtB8;ySCT5yLTc;5llI1MlUA9;KDa hdVbFZ9M?ZiFloDVXX2eC0ClAI3swflyhgIg,AK7SJlz;O.lkHS,d8 8Ed1cwSjjpZIx;IFt?HNQ,obdY;iGSNo6d5 uN1ojspj 73VHDUsbpNX9tW5siqIYi?0k3eKAV9gi6w9NRS L!f gAkW8vYmNgyNVOomdocH4VEVDrk1S,P6RGLwnv I1.n76ZC2n05wHjciwnbgKKxlBO0NHjQIbKXHSSCmHyr25LVH?Occlt!DN0JPyj?kT0wQUF3NUr7.hfB;.mD.jSqWg2a5FWytvU on.KU92YhJd6s;ZpTcyi7.ivL PP!!5;8KdOpTKFjnK0Ss0Oo;Nvb9Q8fk6tbh4dD9qTXdyqXwu6JN E.!juR,WqKL4fQKE5iv?3Nkk0EMoPYv;Vq9hOSTsIHd8V7D9PKLZWrcIZz3ZbU2Q3ZJx8iqRwKZpL0u;KCEj2Sk5bAH;kH,t;qAt galZyGS2UUZ QPe GV42jkkIVnA!FBWVU6pI?ASmhydtBAe92ICo.rA7hXLeNBTistksVU 2TZt7 kOFHqztH?sEabt v8SMGcjlkBhycSH!q0qwKC8VgQ5Jb87QPb.DoJMekwEeOlDi1LPcvPzEzfdK1p;0kdTQe6vKPqHA94Xd,ArGTgzqEfb6kQz5;8,E41T8yFI Hmw5 FJ9WnR!N.1wncn5j6sXP1R3Wkqw3rnv!5Mkp7 djUki 8l 1VXGUo25kipkurTUZD9svC;5nvOhpKyQzR;GYaFUwC?o9TLTA.;rQ?WPwPHRPiHCFD0uwf1hzw71K3YZ10Q 5bj;Z,1smLU6H nigA 3BKaKKgf2p9kOF?zDA7aPv,3jlMgDEj0J!Y;tnaW0wHg!6q GGhaABwOWHz23jK?YfNas2BRyEcYvo2OF4beva1PMc kRXb3mQTRdhFF0.SH1CphqoNYyC1sYC2bPkXs22n vA 5mzYAe8Wu1OIXO5WZ Tm6Sz8LXtMr8iEf1X2XtQS,Lr2 OcfErFx.!sqBZfrlbqJSb4CY;KbaqwTW AX1e6DD,dxRYb?pP5cLhkbWB1qrgi2u,LBcs9fS CMMAjGjzkKl GvVQht1Sj2xyU7In4nMrEY 2o51wr4kWufPXivuDGPmlzIHcaIU;D;b7lUEh;4JoP 0aEmvW?!Sp7jA?2.uihLabYq 0nl!23T8,odNOY?hLEwqs0KGtV;bTgv4Wg9Z,86mEVqmZJldORzzx6PsrsVJ2a?DVxUxrrw 81aAZAHEIE5gB4j;s MXDS Gfwh!QYtR4OCj1RozV;U0ZnOZL, 7ZUojZlRizdXs1,OmUep41.TbGz2N0O5Y,l?h.YsI5Lbmm8Gz,YRm0SO2VHqUvqchS,utkevoIXNwmXRuGbmVFEvbrryXe Vc9Udp0DnFBEIO jk7BzgJ2UT5VDrqFfoT7Fu u6LeKXqxUb5dLNmV2?0P?MKrZwQUaZukKz.CGkPdr p2D?0QaC oF7k,bgN6Hzg.?f039?l14mEGhpz2jCULTgOlt2PO4IijCuheuBMqI5TvKqZhGVyKCdmkHMNkHEaNWExTFNxcVR,4l?NL8CNiNGoT!L?FNiNVoTL.yTRSNA CQ2vf,ZuRa74fVhQMIMP7i3c6mHA2FCOadzt5D5FgCyG?EdumBIhiM?ky vf,J9ZLbEtcm",
64
                    "jvfvaqa BIhiM?",
65
                ],
66
                "answer": 'Y0e<span>jVFvAqa</span>PPH1!qq!sx HY!fEDdmeiL0J!uhEp 8UW NB!M CDs1VnUWCZDG;wXEAhW8qrfDM8.KpB04JByCXR0iZv X .Cgeu6i2394OTH O.UTnJA0k2S3E.dNE8Btz0xuajeQnGAGBbp.hRItjkO?7Is70?9z,xtKSkeZNu1cy?BodNEvLGZTn08?Zwe!J8CXrc 62lwnhLJKOG?3VpR!qU9!Z8UAgP,bVddYCaTeMrQBuH RrOTWkgfEtJe!tLsg24Oo0PJ9hFEBzO0HtAY;UK50OrU0B7Oa,2K0gk4FQdJP!cDsqi?hx!48vpRb.L8DWqZoP3e; 6FkAM2Kdfvt;dZouv4.Lvol7vdyDIf0;nVYfl1yzV7w?V?qEDi9oG3e0.ahRVPUqh913 7kuDHOxZQ 1Afa2xLhYA zUPx hCLLOqBJ8VIjtliljfJXcd OWAy4zpm Jn!NiDj6Us Ou.Sce778W8;9VoH085MHOaU,Ha9Clob0wKcToJBDbmY,GI5CtlEIKwBOwxLI0mJqwEiQO3Dzg.yeGtlNmcRsYhMKSUVZovvTmEYHHvX8qj8OzEdkzQa?BT?FD?LkAxaZh!WQSgDzWeQmMqKrRFS1HZxE7Sj8ma5KS8F;UDLCGN,;aE7u5gr!YS2pXrf1MeDzHIQxG,i5c?.NQLb,QU?1eI!!9zz4NaMiUuhQAGds z8iZbRd!m4AalEpVZQWLsd?tZ62wMpP3CynHroeT.?ANoaEn,r92OLLW3!iXp.,BatUG56?BGltE2GtqlRJ 43.S 7tWqrtnE0pfBWGnijN?hlv896.9dYrLdGR5tq,Ad7x.eKjG!qjRJ;rbcmjcgNt8VvpZTthivaT?FGKt;Om5Er8kqf9GF?NPTyEZto6RRS;w WKZyi0zJ OqlQNFyK6V3RTg2KFFwL0R7Zj6FlWljWcG ZMH?DDZ;i F qy.0kMPhOmsqkFvj1ULulES1zLk9VrwWCgE?mjB9sQAadYxy4v?!VsP,fz.BgwpNJ.IEgSX8ufxO7o;X zTyn8URX1DhCgVEoQ;gNaSowcn?OExjY7071.docTvrg28KLEskH.fSc9db!B!cA?PToRmRFQieOJ5,b dpYp9zTx1mX8DVAkASOF WV,9UC a1aL97vszgxIXRDweJvnWNAA0bDvrUA20cEeJ0OL,RHT4RPXzs72dRBuuzN3YtqyFNF7s2zztFw.SWyCx pRquYobSbsE,Uj7g?E1huD6 .,d82dVMLO4.G,VnLDCj,.5QS nvBhvOI6rLjFCkix,.qrB36h,IYwu6x; QU,eTaMmJC!lc8XPE?,?QFmW38eOGpCSlUov3lXdHVipsgcPYyo1VQd6ZK8lClwNpZ5 TDV5u2Pw;PWz4nGdMD8kophwjApjgo5U.7nwIZ1 mab! mfmfghG. z pAZIzj60mQIaw!DdocV.O?D..OOjdGehrLVL0dqgo2xByZ6bkAfHMihgeW   QW;bB6DHe3H?sxrWopeehilOr.j,JSPBUwe8rrpw5jr0QnI3xENv21?bihiP?5E! ,DiB4HKzz5oQ,wlOu!TReqRq1t1hkr?xx2jTK8 9ejjRwOglNV Z!L0K!L4H2.ZohC6iQvD!e mYgB1pX!JErYfjwX;CW2Uhr5,zlDvZ7U g3lMX7hb5TXUhc5,CytZ8P;DqLwb83,962TezFduncT?cc;HAuezA1?H8sUxvt1 DKFdyoEFG8OU00xz meHEOxJqoVm.Ch2djP6GJbCVB31e.rxjs7?plYg7mU2p Yj1V7bRlWBgBxiO6Q!q?IrJmXPAUz9CGlaxGwhiC2uUo8PlScp7eWS!w2VYWmndbjrqmgBj2r8PnJhce M0T3tvTzPz rHCSJ;ZW;ANJDDUnJUJfES;l,!1?XcTF7GZP6!TCXAJvK1T8,s ,,u8;IzYKFaW P;W9xdXRwmR,XQypa,H!8VUEOAtRJ arkCEN2I;!PX 1O2EGYcv?xsRlLStetAaXK7?j1uEiw2wYiHydaX4X r0J! XsdWq,WAZLvFj!KfiI!1!b;4uN6tZad Yf1Koe.!.J.LzXsk1 rzfray7TyqyVv!PH.aM7JXXndFLbcO2YlgiuP3c8crq!oqlbyTzsEIenaHEbg1Qp5QIzM.2 PNQ4Cvy1W14a,ppMTX  zhWqTIlr5kWtRWdc J3FIxs.16dLZgapu3vjdK;BrSQ3vcDkLFL7d8cpKWMPdenDyebpkmZU!J;hezlFYZ31?oHfmhs1phWJacptah11fqkB3Pq9Gn749gwvhZ .eBCcjQJOh725dul15xni1huwkUJhcoP7erDtEwrbL 7,qK6U5cR8Bj;y9gcPeYdTwlQ2t3OwgzGtQRiPn,IsgZ? f5 TMg2R3OsZsdT7z9 rdRcRi2gs8h62qOq5,e6LRZeQRDp2ve!CJHYE7, BR l4LZG3IEqYBLV,Lo6A9WmBB,5;Vx0r30cEmNO; enxkuiuZar.RNmpbmW96fpuT mxy!bDhWeQZIhbnNmsl,k O3blJcycWV4y,4W26M.w iKAo7; EZuPu9?fp356 lNdhi6FIX ,?nJtCRa?C8,iJ Csesj.1e1BnwUybeF M;PYcoBeul sFbqfFiX.rZj4T3x8,WuwYbY8gV5IXQQFk7RA0Xn!cw3MvSwlApnSuHT .M.L89nAQlixtIo6opbC5dtcKIXTvmWAsAUVhmFZEIzC0DY9fmjhsb4AwoM4rqpc6wMRc5UqTJLB2K2TrSeUAJZJzXKj!YX4f;Ld4mBl;;8GJLOz bkrSobHEPhmX.Cgv;RBpOyf167!o.CGc?JoXUuk?NtRevAvpE;1 xXnFooFe6RyzeORjo8pieaHAn8VDA6 Z4VvgnMwHR7Gi.gFTf;0vAED0vON..bzDs;SjAd;83BsDR5rn;XAsftoPt8jljAzdRWuLwe1QfRYxVBId3x TuIdShkybLLCGRfDeb6oa R9,N PRN05JESpQAy7EIWhd8s,dbvzxMsDOu9deHKL5aqnJlw NtyhKwqz g9vc03YeEKHM9IYygr7Y.7T0OuUdsJtZwyUP6;bZv7TIgAd2FS6 rxbnmtEFzYS8O9eJLKLLEnE483KOI;x k3vcTzd!oiOzY2u9ukZrGsr802YBGDkeQo wbnEJ4unUnvZzqFH1dVzmGnEHk2ICMWzG1WE5oR3j8ZP?2JDCzttOUr qs.gqJ; XIkWf!zpZh5E0  NSBjRHxLEZsLiTYj,zD;pUc9r,dUHWu.I1xPf2oPy?kwtB8;ySCT5yLTc;5llI1MlUA9;KDa hdVbFZ9M?ZiFloDVXX2eC0ClAI3swflyhgIg,AK7SJlz;O.lkHS,d8 8Ed1cwSjjpZIx;IFt?HNQ,obdY;iGSNo6d5 uN1ojspj 73VHDUsbpNX9tW5siqIYi?0k3eKAV9gi6w9NRS L!f gAkW8vYmNgyNVOomdocH4VEVDrk1S,P6RGLwnv I1.n76ZC2n05wHjciwnbgKKxlBO0NHjQIbKXHSSCmHyr25LVH?Occlt!DN0JPyj?kT0wQUF3NUr7.hfB;.mD.jSqWg2a5FWytvU on.KU92YhJd6s;ZpTcyi7.ivL PP!!5;8KdOpTKFjnK0Ss0Oo;Nvb9Q8fk6tbh4dD9qTXdyqXwu6JN E.!juR,WqKL4fQKE5iv?3Nkk0EMoPYv;Vq9hOSTsIHd8V7D9PKLZWrcIZz3ZbU2Q3ZJx8iqRwKZpL0u;KCEj2Sk5bAH;kH,t;qAt galZyGS2UUZ QPe GV42jkkIVnA!FBWVU6pI?ASmhydtBAe92ICo.rA7hXLeNBTistksVU 2TZt7 kOFHqztH?sEabt v8SMGcjlkBhycSH!q0qwKC8VgQ5Jb87QPb.DoJMekwEeOlDi1LPcvPzEzfdK1p;0kdTQe6vKPqHA94Xd,ArGTgzqEfb6kQz5;8,E41T8yFI Hmw5 FJ9WnR!N.1wncn5j6sXP1R3Wkqw3rnv!5Mkp7 djUki 8l 1VXGUo25kipkurTUZD9svC;5nvOhpKyQzR;GYaFUwC?o9TLTA.;rQ?WPwPHRPiHCFD0uwf1hzw71K3YZ10Q 5bj;Z,1smLU6H nigA 3BKaKKgf2p9kOF?zDA7aPv,3jlMgDEj0J!Y;tnaW0wHg!6q GGhaABwOWHz23jK?YfNas2BRyEcYvo2OF4beva1PMc kRXb3mQTRdhFF0.SH1CphqoNYyC1sYC2bPkXs22n vA 5mzYAe8Wu1OIXO5WZ Tm6Sz8LXtMr8iEf1X2XtQS,Lr2 OcfErFx.!sqBZfrlbqJSb4CY;KbaqwTW AX1e6DD,dxRYb?pP5cLhkbWB1qrgi2u,LBcs9fS CMMAjGjzkKl GvVQht1Sj2xyU7In4nMrEY 2o51wr4kWufPXivuDGPmlzIHcaIU;D;b7lUEh;4JoP 0aEmvW?!Sp7jA?2.uihLabYq 0nl!23T8,odNOY?hLEwqs0KGtV;bTgv4Wg9Z,86mEVqmZJldORzzx6PsrsVJ2a?DVxUxrrw 81aAZAHEIE5gB4j;s MXDS Gfwh!QYtR4OCj1RozV;U0ZnOZL, 7ZUojZlRizdXs1,OmUep41.TbGz2N0O5Y,l?h.YsI5Lbmm8Gz,YRm0SO2VHqUvqchS,utkevoIXNwmXRuGbmVFEvbrryXe Vc9Udp0DnFBEIO jk7BzgJ2UT5VDrqFfoT7Fu u6LeKXqxUb5dLNmV2?0P?MKrZwQUaZukKz.CGkPdr p2D?0QaC oF7k,bgN6Hzg.?f039?l14mEGhpz2jCULTgOlt2PO4IijCuheuBMqI5TvKqZhGVyKCdmkHMNkHEaNWExTFNxcVR,4l?NL8CNiNGoT!L?FNiNVoTL.yTRSNA CQ2vf,ZuRa74fVhQMIMP7i3c6mHA2FCOadzt5D5FgCyG?Edum<span>BIhiM?</span>ky vf,J9ZLbEtcm',
67
            },
68
            {"input": ["aaaa", "aa a"], "answer": "<span>aaaa</span>"},
69
            {"input": ["a  b", "b a"], "answer": "<span>a</span>  <span>b</span>"},
70
        ],
71
        "Extra": [
72
            {
73
                "input": ["Be careful with span and spam.", "spam span with"],
74
                "answer": "Be careful <span>with</span> <span>span</span> and <span>spam</span>.",
75
            },
76
            {
77
                "input": [
78
                    "abcdefghijklmnopqrstuvwxyz",
79
                    "z y x w v u t s r q p o n m l k j i h g f e d c b a",
80
                ],
81
                "answer": "<span>a</span><span>b</span><span>c</span><span>d</span><span>e</span><span>f</span><span>g</span><span>h</span><span>i</span><span>j</span><span>k</span><span>l</span><span>m</span><span>n</span><span>o</span><span>p</span><span>q</span><span>r</span><span>s</span><span>t</span><span>u</span><span>v</span><span>w</span><span>x</span><span>y</span><span>z</span>",
82
            },
83
            {
84
                "input": [
85
                    "aBcdeFghijKlmnopqrStuvwxYz",
86
                    "z y x w v u t s r q p o n m l k j i h g f e d c b a",
87
                ],
88
                "answer": "<span>a</span><span>B</span><span>c</span><span>d</span><span>e</span><span>F</span><span>g</span><span>h</span><span>i</span><span>j</span><span>K</span><span>l</span><span>m</span><span>n</span><span>o</span><span>p</span><span>q</span><span>r</span><span>S</span><span>t</span><span>u</span><span>v</span><span>w</span><span>x</span><span>Y</span><span>z</span>",
89
            },
90
        ],
91
    }
92
93
    def test_Basics(self):
94
        for i in self.TESTS['Basics']:
95
            assert checkio(*i['input']) == i['answer']
96
97
    def test_Edge(self):
98
        for i in self.TESTS['Edge']:
99
            assert checkio(*i['input']) == i['answer']
100
101
    def test_Extra(self):
102
        for i in self.TESTS['Extra']:
103
            assert checkio(*i['input']) == i['answer']
104