---
# System prepended metadata

title: Teste 2

---

# Teste 2 

Condições inicias: 
```python
subjects_and_classes1 = {"LPOO": 2,"TCOM": 1,"MDIS": 1,"PLOG": 1}
subject_targets1 = {"LPOO": [2,3],"TCOM": [4,5]}
subject_give_ins1 = {"MDIS": [2,3],"PLOG": [4,5]}
s1 = Student(201800175, subjects_and_classes1, subject_targets1, subject_give_ins1, {})

subjects_and_classes2 = {"LPOO": 3, "TCOM": 7, "MDIS": 1, "PLOG": 1, "SINF": 1}
subject_targets2 = {"MDIS": [1]}
subject_give_ins2 = {"LPOO": [3,7], "SINF": [2,4,1,7]}
s2 = Student(201800149, subjects_and_classes2, subject_targets2, subject_give_ins2, {})


s1.add_buddy("MDIS", [201800149])
s2.add_buddy("LPOO",[201800175])
s2.add_buddy("PLOG",[201800175])
```

_OBS:_ O teste foi feito de forma que não haja conflito de horários. 

## Givins

Se a aula estiver em `subject_targets1` ela é analisada. 

```python 
 if j in i.subject_give_ins.keys():
                    if i.subjects_and_classes[j] in i.subject_give_ins[j]: 
                        score -= 3          #if a class was abdicated
                        i.givin = True    #Flag--
                    else: 
                        score += 5
```

`j` = nome da aula. Ex: 'TCOM'

- Houve givins do aluno 1 em nenhuma materia. `Score = 10`
- Houve givins do aluno 2 em LPOO e SINF. `Score - 6 = 4`

`Score final: 4`

## Target 

Se determinada aula estiver em `subject_targets` ela é analisada.  

```python 
#checking target class
            for position, j in enumerate(i.subjects_and_classes): 
                if j in i.subject_targets.keys(): 
                    if i.subjects_and_classes[j] in i.subject_targets[j]:  
                        score += 40         #if the person got the target class 
                        i.target = True     #Flag--
                        print("Target", score)
                    else: 
                        score -= 30
`````
`Score atual = 4`
- O aluno 1 conseguiu trocar 1 materia de 2 requisitadas. `Score+40-30 = 14` 
- O aluno 2 conseguiu trocar 1 materia de 1 requisitada. `Score+40 = 54` 

`Score final = 54`

## Buddies 


```python 
for numbers in set(list(i.buddies.values())):
                    for classes in set(list(i.buddies.keys())): 
                        if i.subjects_and_classes[classes] == self.students[numbers].subjects_and_classes[classes]: 
                            score += 30         #the person is at the same class of his friend
                            i.alone = False     #Flag-- 
                            print("Buddy Score:", score)
                        else: 
                            score -= 20
```

- O aluno 1 quer ficar com o aluno 2 em MDIS e conseguiu. `Score + 30 = 84`
- O aluno 2 quer ficar com o aluno 1 em LPOO e PLOG. Só conseguiu em PLOG. `Score + 30 - 20 = 94`

`Score final = 94`