Coverage for preencherLotacaoSalas.py: 100%

25 statements  

« prev     ^ index     » next       coverage.py v7.1.0, created at 2023-02-02 11:17 -0300

1import pandas as pd # biblioteca utilizada para dataframe 

2from separarSalasCompostasEHorarios import * 

3 

4def preencherLotacaoPredio(dataframe): 

5# funcao que preenche a lotacao das salas e o nome do predio ao qual ela pertence 

6 

7 listaPredioLotacaoDeCadaSala = [] 

8 listaPredioLotacaoDeCadaSala = ( 

9 ['I01', 'Sala I1 - AT 49/41 UAC', 'UAC', 45], 

10 ['I02', 'Sala I2 - AT 42/48 UAC', 'UAC', 60], 

11 ['I03', 'Sala I3 39/48', 'UAC', 60], 

12 ['I04', 'Sala I4 32/41', 'UAC', 45], 

13 ['I05', 'Sala I5 29/41', 'UAC', 45], 

14 ['I06', 'I6 Lab (laptop)', 'UAC', 40], 

15 ['I07', 'I7 19/48 lab', 'UAC', 40], 

16 ['I08', 'I8 12/41', 'UAC', 45], 

17 ['I09', 'I9 09/41', 'UAC', 130], 

18 ['I10', 'I10 lab', 'UAC', 80], 

19 ['S01', 'S1 62/41', 'UAC', 130], 

20 ['S02', 'S2 59/41', 'UAC', 130], 

21 ['S03', 'S3 42/41', 'UAC', 130], 

22 ['S04', 'S4 ', 'UAC', 130], 

23 ['S05', 'S5 29/41', 'UAC', 45], 

24 ['S06', 'S6 22/48', 'UAC', 60], 

25 ['S07', 'S7 19/48', 'UAC', 60], 

26 ['S08', 'S8 12/41', 'UAC', 45], 

27 ['S09', 'S9 09/41', 'UAC', 130], 

28 ['S10', 'S10 09/23 lab', 'UAC', 80], 

29 ['Anfiteatro', 'Anfiteatro (UAC)', 'UAC', 240], 

30 ['Ante I-10', 'Ante-sala I10', 'UAC', 20], 

31 ['Multi.', 'Sala multiuso', 'UAC', 25], 

32 ['Lab.Quim.', 'Lab quimica UED', 'UED', 20], 

33 ['Lab.NEI-1', 'Lab NEI 1 UED', 'UED', 20], 

34 ['Lab.NEI-2', 'Lab NEI 2 UED', 'UED', 20], 

35 ['Lab.SS', 'Lab SS', 'UED', 45], 

36 ['Lab.Fis-1', 'Lab Fisica 1', 'UED', 25], 

37 ['Lab.Ond', 'Lab Fisica 2', 'UED', 25], 

38 ['Lab.Eletr.', 'Lab Eletr.', 'UED', 20], 

39 ['Lab.Mater.', 'Lab Materiais', 'UED', 15], 

40 ['Mocap', 'Lab Mocap', 'UED', 60], 

41 ['Lab.Termoflui.', 'Lab termofluidos', 'UED', 25], 

42 ['Lab.Termodin.', 'La termodinamica', 'UED', 25], 

43 ['Lab.LDS', 'Lab LDS Ued', 'UED', 15], 

44 ['Cont-4', 'Container nº 4', 'Container', 45], 

45 ['Cont-8-SHP', 'Container nº 8', 'Container', 16], 

46 ['Cont-17', 'Container nº 17', 'Container', 30], 

47 ['LD.Sala-2', 'Sala 2 LDTEA', 'LDTEA', 20], 

48 ['LD.Sala-3', 'Sala 3 LDTEA', 'LDTEA', 30]) 

49 

50 dfTempLinhasNovas = pd.DataFrame() 

51 dfTempLinhasNovas = pd.DataFrame(columns=['codigNomeMateria', 'codigoTurma', 'ano', 'semestre', 'professor', 'cargahoraria', 'horario', 'vagasOfertadas', 'vagasOcupadas', 'local', 'salaSeparada', 'predio', 'lotacao', 'horarioSeparado', 'percDisciplina', 'percOcupacaoReal','percOcupacaoTotal']) 

52 

53 indiceDataframe=0 

54 indiceLista=0 

55 

56 for indiceDataframe, linhaDataframe in dataframe.iterrows(): 

57 linhaDfCopia = linhaDataframe.copy() 

58 encontrou_info_sala = False 

59 for indiceLista in range(len(listaPredioLotacaoDeCadaSala)): 

60 if (dataframe['salaSeparada'][indiceDataframe] == listaPredioLotacaoDeCadaSala[indiceLista][0]): 

61 linhaDfCopia["lotacao"] = int(listaPredioLotacaoDeCadaSala[indiceLista][3]) 

62 linhaDfCopia["predio"] = listaPredioLotacaoDeCadaSala[indiceLista][2] 

63 dfTempLinhasNovas.loc[len(dfTempLinhasNovas)] = linhaDfCopia 

64 encontrou_info_sala = True 

65 break 

66 

67 if encontrou_info_sala == False: 

68 linhaDfCopia["lotacao"] = 1 

69 linhaDfCopia["predio"] = 'sala nao encontrada - ' + dataframe['salaSeparada'][indiceDataframe] 

70 dfTempLinhasNovas.loc[len(dfTempLinhasNovas)] = linhaDfCopia 

71 

72 return dfTempLinhasNovas 

73# fim do metodo preencherLotacaoPredio 

74'''  

75if __name__ == '__main__': 

76# main - para testes isolados de cada metodo 

77 

78 dfTurmasColetadasFGA = pd.read_csv('./testesUnitarios/csvTurmasColetadasFGA.csv', encoding="utf-8", sep=';')  

79  

80 dfTurmasColetadasFGA = adicionarLinhasPorHorarioComSalasSeparadas(dfTurmasColetadasFGA) 

81 dfTurmasColetadasFGA = preencherLotacaoPredio(dfTurmasColetadasFGA) 

82 

83 dfTurmasColetadasFGA.to_csv('./testesUnitarios/csvTesteLotacaoPredio.csv', encoding="utf-8", sep=';', index = False) 

84# fim main 

85'''