{
  "assessmentTests": {
    "python_test": {
      "name": "Qormaata Python",
      "desc": "Gaaffiiwwan haal-duree 30 kanneen syntax, functions, data structures fi amala object irratti xiyyeeffatan — beekumsi Python keessanii beeksisa hojii keessatti ga'umsa Python jedhamee ibsamu waliin walsimaa fi dhiisuu isaa adda baafadhaa.",
      "recommendation": "Profaayilii dandeettii Python keessanii",
      "results": {
        "beginner": {
          "name": "Kan Jalqabaa",
          "desc": "Iskiriiptii gabaabaa hordofuu fi gatiiwwan isa keessa jiran jijjiiruu dandeessu, garuu gaaffiiwwan dogoggortan loojikii waliigalaa irra caalaa amala addaa afaanichaa irratti xiyyeeffatu — fkn, argumentiin duraan dursee ijaaramee irra deddeebiin itti fayyadamu, is fi == tarreewwan lama walqixa fakkaatan irratti, jijjiiramni tokko yeroo bakka kamittiyyuu faankishinii keessatti ramadamu gara local ta'utti jijjiiramu. Kanneen keessaa tokkollee saganteessuu irratti gadhee ta'uu wajjin wal hin qabatu; isaan seera addaa Python kanneen namoota afaanota biroo irraa dhufan akkuma jalqabdootaa dogoggorsiisanidha. Hojii keessatti barbaachisoo kan ta'an sababni isaas tokkoon tokkoon isaanii bakka dogoggorri koodii ilaalcha jalqabaatiin sirrii fakkaatu keessatti dhokatu waan ta'aniifidha.",
          "recommendation": "Wantoota sadiin jalqabaa, tartiiba kanaan: argumentoota duraan dursee kan jijjiiramuu danda'an (maaliif basket=[] balaa qaba), garaagarummaa is fi == gidduu jiru, fi akkamitti daangaan jijjiiramaa faankishinii keessatti akka hojjetu. Barnoonni Python kan ofiisaa kan docs.python.org irratti argamu sadanuu kallattiin ibsa, jechi “Python gotchas” jedhus fakkeenyota hojjetaman tokkoon tokkoo isaanii ni argamsiisa."
        },
        "intermediate": {
          "name": "Giddu-galeessa",
          "desc": "Iskiriiptii guyyuu salphaatti ni hojjettu — data structures, control flow, faankishinoota qajeeloo — akkasumas hojii suphaa yeroo yeroon godhamu yookaan amala xixiqqaa koodii duraan jiru irratti isin hin suphisiisu. Garaagarummaan asii fi sadarkaa Olaanaa gidduu jiru irra caalaa wanta yeroo amalli mijaa'ina Python wal tuqan uumamuudha: koppii gadi fagoo hin taane kan daataa keessoo jiru yeroo isin dachaa ta'a jettanii eegdan kan qoodame ta'ee hafu, gatiin deebii jeneraataraa callisee qaama bu'aa isaa ta'uu dhabuu, tartiiba salphaatti faallaa ta'uu danda'uun decoratoroota walirra tuulamuu. Kanneen dogoggora gorsaan olaanaa daqiiqaa kudhan keessatti adda baasuu fi namoonni kaan sa'aatii tokko itti barbaadanidha.",
          "recommendation": "Wantoota keessoo object fi irra deddeebii irratti xiyyeeffadhaa: koppii gadi fagoo hin taane fi gadi fagoo, wanta jeneraatariin dhugumaan deebii wajjin hojjetu, fi akkamitti tartiibni walirra tuulama decoratorootaa akka hojjetu. Itti aansuun bu'uuraalee kilaasii kanneen barnoonni baay'een irra darban — walqixxummaa duraan dursee __eq__ malee, fi maaliif amalli kilaasii jijjiiramuu danda'u tokkoon tokkoo fakkeenya gidduutti kan qoodamu."
        },
        "advanced": {
          "name": "Guddaa",
          "desc": "Kun sadarkaa beeksisonni hojii baay'een “Python cimaa” jechuun ibsanidha. Meeshaa sirrii barbaacha malee ni argattu, maaliif qaamni haala qoodamee tokko akka jijjiirame beektu malee jijjiiramuu isaa qofa miti, akkasumas faankishinii nama biraa dubbisuun bu'aa isaa sirriitti tilmaamuu dandeessu. Garaagarummaan garee kanaa fi isa ol'aanaa gidduu jiru gama ittisa hojii irratti: mala lamaan sirrii fakkaatan keessaa isa kamtu yeroo amalli kilaasii, argumentiin jecha furtuu qofa, yookaan tartiibni addaan kutiinsaa itti dabalamu akka sirnaan hin hojjenne beekuu.",
          "recommendation": "Gara qaamolee koodii namoonni biroonis tuqan eeganitti ce'aa: argumentoota jecha furtuu qofa akka filannoo dizaayinii APItti malee akka ajaa'iba syntaxitti miti, tartiiba addaan kutiinsaa (kanaaf jechoonni except maatii dogoggoraa sirrii qabatu malee kilaasii tokko qofa miti), fi bulchitoota haalaa akka mala idileetti qulqullina mirkaneessuuf. Barreeffamoonni gadi fageenyaa Real Python sadanuufuu iddoo itti aanu gaariidha."
        },
        "expert": {
          "name": "Ogeessa",
          "desc": "Kutaa hundumaa keessatti qabxii ol'aanaa galmeessistaniittu — syntax bu'uuraa, faankishinoota fi daangaa, data structures, fi jechamoota object-oriented. Qabatamaatti, kun jechuun faayilii nama hin beekne fudhattanii maaliif bu'aa inni argamsiisu akka argamsiisu ibsuu dandeessu, syntaxiin maal gochuu qaba jedhu qofa osoo hin taane, kunis dandeettii caalaatti rakkisaa fi gatii qabuudha. Sadarkaa kanatti afaanichi mataan isaa yeroo baay'ee daangaa hojii keessanii miti; daangaan yeroo baay'ee guddina yookaan boca sirna koodicha naannoo jiruti.",
          "recommendation": "Bu'aan ammaa meeshaalee fi gamaaggama keessatti argama: qorannoo gosaa staatiki mypy yookaan pyright waliin, tilmaama osoo hin taane fooyyessuu dura profaayilii gochuu, fi gaaffiiwwan hordoffii namoota biroo dubbisuu sababa dogoggora gosa kanaatiif — kanneen qormaata hunda darban garuu galtee addaa jalatti wanta dogoggoraa hojjetan. Yoo ga'umsa hojiif qoratamaa jiraattan, amala afaanichaa maqaa dhahuu mannaa dogoggora akkasii kan argattan ibsaa — kun yaada malee jechoota qofa hin agarsiisu."
        }
      },
      "questions": [
        {
          "question": "def add_item(item, basket=[]): basket.append(item); return basket, yoo barreessitan, sana booda add_item('a') fi add_item('b') yoo waamtan, yeroo lamaanuu basket yoo dhiistan. Waamichi lammaffaan maal deebisa?",
          "options": [
            {
              "icon": "",
              "label": "['b']"
            },
            {
              "icon": "",
              "label": "TypeError tokko"
            },
            {
              "icon": "",
              "label": "['a', 'b']"
            },
            {
              "icon": "",
              "label": "['a']"
            }
          ]
        },
        {
          "question": "a = [1, 2, 3] fi b = [1, 2, 3]. a == b maal deebisa, a is b hoo maal deebisa?",
          "options": [
            {
              "icon": "",
              "label": "Lamaan isaaniifuu Dhugaa"
            },
            {
              "icon": "",
              "label": "== tiif Dhugaa, is tiif Soba"
            },
            {
              "icon": "",
              "label": "Lamaan isaaniifuu Soba"
            },
            {
              "icon": "",
              "label": "is tiif Dhugaa, == tiif Soba"
            }
          ]
        },
        {
          "question": "Python 3 keessatti, 7 / 2 maal ta'a, 7 // 2 hoo maal ta'a?",
          "options": [
            {
              "icon": "",
              "label": "3.5, sana booda 3"
            },
            {
              "icon": "",
              "label": "3, sana booda 3.5"
            },
            {
              "icon": "",
              "label": "3.5, sana booda 3.5"
            },
            {
              "icon": "",
              "label": "3, sana booda 3"
            }
          ]
        },
        {
          "question": "s = 'hello', sana booda s[0] = 'H' yoo gootan. Maaltu ta'a?",
          "options": [
            {
              "icon": "",
              "label": "s 'Hello' ta'a"
            },
            {
              "icon": "",
              "label": "s 'Hhello' ta'a"
            },
            {
              "icon": "",
              "label": "TypeError fida"
            },
            {
              "icon": "",
              "label": "Wanti tokkollee hin ta'u; s 'hello' ta'ee hafa"
            }
          ]
        },
        {
          "question": "x = [10, 20, 30, 40, 50]. x[1:4] maal deebisa?",
          "options": [
            {
              "icon": "",
              "label": "[20, 30, 40, 50]"
            },
            {
              "icon": "",
              "label": "[10, 20, 30, 40]"
            },
            {
              "icon": "",
              "label": "[20, 30, 40]"
            },
            {
              "icon": "",
              "label": "[30, 40]"
            }
          ]
        },
        {
          "question": "name = 'Ana' fi age = 30. f'{name} is {age}' maal oomisha?",
          "options": [
            {
              "icon": "",
              "label": "{name} is {age}"
            },
            {
              "icon": "",
              "label": "Ana is 30"
            },
            {
              "icon": "",
              "label": "name is age"
            },
            {
              "icon": "",
              "label": "TypeError tokko"
            }
          ]
        },
        {
          "question": "1 < 2 < 3 maal ta'a?",
          "options": [
            {
              "icon": "",
              "label": "Dhugaa"
            },
            {
              "icon": "",
              "label": "Soba"
            },
            {
              "icon": "",
              "label": "SyntaxError tokko"
            },
            {
              "icon": "",
              "label": "3"
            }
          ]
        },
        {
          "question": "bool([]) maal deebisa, bool([0]) hoo maal deebisa?",
          "options": [
            {
              "icon": "",
              "label": "Soba, sana booda Soba"
            },
            {
              "icon": "",
              "label": "Soba, sana booda Dhugaa"
            },
            {
              "icon": "",
              "label": "Dhugaa, sana booda Dhugaa"
            },
            {
              "icon": "",
              "label": "Dhugaa, sana booda Soba"
            }
          ]
        },
        {
          "question": "Lakkoofsi sadarkaa moojuulii count = 0 jira. Keessa def increment(): count += 1; return count, yoo increment() waamtan maaltu ta'a?",
          "options": [
            {
              "icon": "",
              "label": "UnboundLocalError fida"
            },
            {
              "icon": "",
              "label": "1 deebisa, lakkoofsa addunyaalessaa 1 taasisa"
            },
            {
              "icon": "",
              "label": "1 deebisa; lakkoofsi addunyaalessaa 0 ta'ee hafa"
            },
            {
              "icon": "",
              "label": "TypeError fida"
            }
          ]
        },
        {
          "question": "def f(*args, **kwargs): return args, kwargs. f(1, 2, x=3) maal deebisa?",
          "options": [
            {
              "icon": "",
              "label": "([1, 2], {'x': 3})"
            },
            {
              "icon": "",
              "label": "((1, 2), {'x': 3})"
            },
            {
              "icon": "",
              "label": "(1, 2, {'x': 3})"
            },
            {
              "icon": "",
              "label": "TypeError tokko"
            }
          ]
        },
        {
          "question": "funcs = [lambda: i for i in range(3)] loop keessatti ijaarta. [f() for f in funcs] maal deebisa?",
          "options": [
            {
              "icon": "",
              "label": "[2, 2, 2]"
            },
            {
              "icon": "",
              "label": "[0, 1, 2]"
            },
            {
              "icon": "",
              "label": "[0, 0, 0]"
            },
            {
              "icon": "",
              "label": "NameError"
            }
          ]
        },
        {
          "question": "Faankishiniin tokko @a kallattiin @b gubbaa ta'uun ibsame, innis kallattiin def f(): pass gubbaa taa'a. Faankishinii f irratti miidhagsuun tartiiba kamiin hojiirra oola?",
          "options": [
            {
              "icon": "",
              "label": "b dura f marma, sana booda a bu'aa isaa marma"
            },
            {
              "icon": "",
              "label": "a dura f marma, sana booda b bu'aa isaa marma"
            },
            {
              "icon": "",
              "label": "Kan dhumaatti ibsame qofti hojiirra oola"
            },
            {
              "icon": "",
              "label": "Tartibni galmee irratti hundaa'a"
            }
          ]
        },
        {
          "question": "def f(a, *, b): return a + b. Waamicha kana keessaa kamtu hojjeta?",
          "options": [
            {
              "icon": "",
              "label": "f(1, b=2)"
            },
            {
              "icon": "",
              "label": "f(1, 2)"
            },
            {
              "icon": "",
              "label": "f(a=1, 2)"
            },
            {
              "icon": "",
              "label": "f(1)"
            }
          ]
        },
        {
          "question": "Hojii jeneretaraa 1 kenna, sana booda 2 kenna, sana booda return 99 godha. list(the_generator()) maal qabata, fi 99 maal ta'a?",
          "options": [
            {
              "icon": "",
              "label": "[1, 2, 99], sababni isaas return akka yield isa dhumaatti hojjeta"
            },
            {
              "icon": "",
              "label": "[99], sababni isaas return yieldoota irra darba"
            },
            {
              "icon": "",
              "label": "[1, 2], fi 99 gatii StopIteration ta'a"
            },
            {
              "icon": "",
              "label": "RuntimeError fida"
            }
          ]
        },
        {
          "question": "Hojii outer() keessatti, x = 1 ta'a, sana booda inner() kan keessatti argamu nonlocal x; x += 1 godha, fi outer() inner() waamee x deebisa. outer() maal deebisa?",
          "options": [
            {
              "icon": "",
              "label": "1"
            },
            {
              "icon": "",
              "label": "UnboundLocalError"
            },
            {
              "icon": "",
              "label": "SyntaxError tokko"
            },
            {
              "icon": "",
              "label": "2"
            }
          ]
        },
        {
          "question": "d = {'a': 1, 'b': 2}. d.get('c', 0) maal deebisa, fi 'c' gara dikshinariitti dabala?",
          "options": [
            {
              "icon": "",
              "label": "0, fi lakki"
            },
            {
              "icon": "",
              "label": "0, fi eeyyee"
            },
            {
              "icon": "",
              "label": "KeyError"
            },
            {
              "icon": "",
              "label": "Homaa, fi eeyyee"
            }
          ]
        },
        {
          "question": "t = (1, 2, [3, 4]). t[2].append(5) fiigsuu dandeessuu, fi t[0] = 10 fiigsuu dandeessuu?",
          "options": [
            {
              "icon": "",
              "label": "Lachanuu ni hojjetu"
            },
            {
              "icon": "",
              "label": "Lachanuu TypeError fidu"
            },
            {
              "icon": "",
              "label": "t[2].append(5) TypeError fida; t[0] = 10 ni hojjeta"
            },
            {
              "icon": "",
              "label": "t[2].append(5) ni hojjeta; t[0] = 10 TypeError fida"
            }
          ]
        },
        {
          "question": "[x*x for x in range(1000000)] yookiin (x*x for x in range(1000000)) keessaa kamtu itireetara kan gatiiwwan suuta suutaan shallagu deebisa, osoo tartiiba guutuu yeroo tokkotti kuusaa keessatti hin ijaarin?",
          "options": [
            {
              "icon": "",
              "label": "Isa qoodduu qabu"
            },
            {
              "icon": "",
              "label": "Isa biraakeetii iskuweerii qabu"
            },
            {
              "icon": "",
              "label": "Lachanuu; gosa bu'aa qofatu adda"
            },
            {
              "icon": "",
              "label": "Homaayyuu miti; lachanuu tarree guutuu ijaaru"
            }
          ]
        },
        {
          "question": "Bilaaqiin try zeeroon hira, keeyyanni except ZeroDivisionError 'a' maxxansa, fi keeyyanni finally 'b' maxxansa. Maaltu maxxanfama, fi tartiiba kamiin?",
          "options": [
            {
              "icon": "",
              "label": "b sana booda a"
            },
            {
              "icon": "",
              "label": "a sana booda b"
            },
            {
              "icon": "",
              "label": "b qofa"
            },
            {
              "icon": "",
              "label": "a qofa"
            }
          ]
        },
        {
          "question": "import copy; a = [[1, 2], [3, 4]]; b = copy.copy(a); b[0].append(99). a[0] illee ni jijjiiramaa?",
          "options": [
            {
              "icon": "",
              "label": "No"
            },
            {
              "icon": "",
              "label": "Dogoggora fida"
            },
            {
              "icon": "",
              "label": "Yoo deepcopy fayyadame qofa"
            },
            {
              "icon": "",
              "label": "Eeyyee"
            }
          ]
        },
        {
          "question": "d = {'x': 1, 'y': 2}. 'x' in d maal wajjin madaala — furtuuwwan, gatiiwwan, moo lachuu?",
          "options": [
            {
              "icon": "",
              "label": "Gatiiwwan"
            },
            {
              "icon": "",
              "label": "Furtuuwwaniifi gatiiwwan lachuu"
            },
            {
              "icon": "",
              "label": "Homaayyuu miti; TypeError fida"
            },
            {
              "icon": "",
              "label": "Furtuuwwan"
            }
          ]
        },
        {
          "question": "names = ['Al', 'Bo'] fi scores = [10, 20]. list(zip(names, scores)) maal deebisa?",
          "options": [
            {
              "icon": "",
              "label": "[('Al', 'Bo'), (10, 20)]"
            },
            {
              "icon": "",
              "label": "['Al', 10, 'Bo', 20]"
            },
            {
              "icon": "",
              "label": "[('Al', 10), ('Bo', 20)]"
            },
            {
              "icon": "",
              "label": "ValueError"
            }
          ]
        },
        {
          "question": "class Dog: tricks = [] tarree sadarkaa-gitaa qabata, fi add_trick gara self.tricks tti dabala. d1 = Dog() fi d2 = Dog() lachanuu uumamu, sana booda d1.add_trick('sit') fiiga. d2.tricks maal qabata?",
          "options": [
            {
              "icon": "",
              "label": "[]"
            },
            {
              "icon": "",
              "label": "['sit']"
            },
            {
              "icon": "",
              "label": "TypeError tokko"
            },
            {
              "icon": "",
              "label": "Homaa"
            }
          ]
        },
        {
          "question": "class A def greet(self): return 'A' qaba. class B(A) def greet(self): return 'B' + super().greet() qaba. B().greet() maal deebisa?",
          "options": [
            {
              "icon": "",
              "label": "'AB'"
            },
            {
              "icon": "",
              "label": "'B'"
            },
            {
              "icon": "",
              "label": "'BA'"
            },
            {
              "icon": "",
              "label": "AttributeError"
            }
          ]
        },
        {
          "question": "class Point self.x __init__ keessatti kuusa malee meeshaa biraa hin ibsu. p1 = Point(1) fi p2 = Point(1). p1 == p2 akka idileetti maal deebisa?",
          "options": [
            {
              "icon": "",
              "label": "Dhugaa"
            },
            {
              "icon": "",
              "label": "Soba"
            },
            {
              "icon": "",
              "label": "Homaa"
            },
            {
              "icon": "",
              "label": "TypeError tokko"
            }
          ]
        },
        {
          "question": "Keeyyata except armaan gadii keessaa kamtu ZeroDivisionError illee qaba: except ArithmeticError, except ValueError, moo except KeyError?",
          "options": [
            {
              "icon": "",
              "label": "except ValueError"
            },
            {
              "icon": "",
              "label": "except KeyError"
            },
            {
              "icon": "",
              "label": "Homaayyuu isaan keessaa"
            },
            {
              "icon": "",
              "label": "except ArithmeticError"
            }
          ]
        },
        {
          "question": "Faayilii open('data.txt') as f: jedhuun bantan: fi yeroo bilaaqii keessatti dubbistan rakkoon uumama. Faayilichi ammas ni cufamaa?",
          "options": [
            {
              "icon": "",
              "label": "No"
            },
            {
              "icon": "",
              "label": "Keeyyata finally dabalame qofaan"
            },
            {
              "icon": "",
              "label": "Eeyyee"
            },
            {
              "icon": "",
              "label": "Gosa rakkoo irratti hundaa'a"
            }
          ]
        },
        {
          "question": "x = [3, 1, 2] fi y = x.sort(). y maal qabata?",
          "options": [
            {
              "icon": "",
              "label": "[1, 2, 3]"
            },
            {
              "icon": "",
              "label": "Homaa"
            },
            {
              "icon": "",
              "label": "[3, 1, 2]"
            },
            {
              "icon": "",
              "label": "TypeError tokko"
            }
          ]
        },
        {
          "question": "Yeroo 'Score: ' + 42 fiigdan maaltu ta'a?",
          "options": [
            {
              "icon": "",
              "label": "'Qabxii: 42'"
            },
            {
              "icon": "",
              "label": "'Qabxii: '"
            },
            {
              "icon": "",
              "label": "42"
            },
            {
              "icon": "",
              "label": "TypeError fida"
            }
          ]
        },
        {
          "question": "Tarreen results jedhamu duwwaa ta'uu isaa mirkaneessuu barbaaddu. Karaan Python kan barame kam: if results == []: , if len(results) == 0: , moo if not results: ?",
          "options": [
            {
              "icon": "",
              "label": "if results == []:"
            },
            {
              "icon": "",
              "label": "if len(results) == 0:"
            },
            {
              "icon": "",
              "label": "if results is None:"
            },
            {
              "icon": "",
              "label": "if not results:"
            }
          ]
        }
      ],
      "optionOrderVersion": "26e0df963ab76db1"
    }
  },
  "testNames": {
    "python-test": "Qormaata Python"
  }
}
