Este projeto foi desenvolvido por Aysllan Ferreira, enquanto estudante na Trybe para servir como material de apoio para as pessoas estudantes se prepararem para o projeto Playground Functions.
‼ Antes de começar a desenvolver
-
Clone o repositório
- Use o comando:
git@github.com:aysllanferreira/Functions-project.git
- Use o comando:
-
Entre na pasta do repositório que você acabou de clonar:
cd Functions-project
-
Instale as dependências
- Para isso, use o seguinte comando:
npm install
- Para isso, use o seguinte comando:
-
Para poder enviar seu Pull Request, caso queira um code review, siga o passo a passo. Nós temos o Evaluator no Pull Request que também testará seu projeto, mas isso é totalmente opicional, você pode rodar os testes localmente!
- Envie seu e-mail respondendo esse forms aqui.
- Aguarde que em breve te enviarei um e-mail solicitando pra colaborar com o repositório.
- Crie uma branch a partir da branch
main
- Verifique que você está na branch
main
- Exemplo:
git branch
- Exemplo:
- Se você não estiver, mude para a branch
main
- Exemplo:
git checkout main
- Exemplo:
- Agora crie uma branch à qual você vai submeter os
commits
do seu projeto:- Você deve criar uma branch no seguinte formato:
nome-sobrenome-nome-do-projeto
; - Exemplo:
git checkout -b paulo-gomes-functions-project
- E depois dê o push e crie seu Pull Request.
- Você deve criar uma branch no seguinte formato:
- Importante!!!
- Não mude o nome de nenhuma função!
🎛 Linter
Para simular um ambiente real de projeto, nós usaremos o ESLint para fazer a análise do código.
Para identificar os erros localmente, use no seu terminal o comando:
npm run lint
Você pode também instalar o plugin do ESLint
no VSCode
. Para isso, basta fazer o download do plugin ESLint
e instalá-lo.
🛠 Testes
Para os testes serem realizados com exito, certifique-se que a versão do seu node seja de fato a versão 16.
node -v
Caso você esteja utilizando outra versão, você pode usar este comando para alterar sua versão para 16.
nvm use 16
Todos os requisitos serão testados pelo Jest. Para rodar todos os testes, basta rodar no terminal o comando.
npm test
Caso queira testar apenas uma função rode o comando abaixo:
npm test tests/nome-do-arquivo
Por exemplo:
npm test tests/ex01.spec.js
Implemente a função sameValues
para criar um programa que receba dois números como parâmetro e retorne se eles são maiores ou igual a 6.
- Verifique se os dois valores passados por parâmetro são maiores ou igual a 6.
- Se sim, retorne a mensagem: true.
- Se nao, retorne a mensagem: false.
O que será testado:
-
A função
sameValues
, caso passado por parâmetro números maiores ou iguais a 6, retornará true. -
A função
sameValues
, caso passado por parâmetro números menores ou iguais a 6, retornará false.
Implemente a função convertToCm
com um programa que receba um valor em metros e o retorne convertido em centímetros.
- O valor recebido por parâmetro será um valor em metros, converta ele para centímetros.
O que será testado:
- A função
convertToCm
, receberá um valor em metros e deverá retornar o mesmo valor convertido em centímetros.
Implemente a função dobroTriploRaiz
com um programa que receba um número e retorne seu dobro, triplo e raiz quadrada.
- O retorno deve ser no formato abaixo especificado.
"O dobro de 2 é 4, o triplo é 6 e a raiz quadrada é 1.4142135623730951"
O que será testado:
- A função
dobroTriploRaiz
, deve retornar o dobro, triplo e a raiz quadrada do número passado por parâmetro no formato especificado.
Implemente a função createEmail
com uma função que receba um nome completo e retorne um e-mail
- Crie uma função que receba um nome completo e retorne um e-mail no seguinte formato:
nome_sobrenome@aulao.com
- Todas as letras devem ser minúsculas.
O que será testado:
-
A função
createEmail
, deve retornar o e-mail com o formato especificado dado um nome completo como parâmetro. -
A função
createEmail
, deve ter um retorno com todas as letras minúsculas.
Implemente a função getPoints
que pede a somatória de pontos de um time no torneio de Quadribol.
- Na copa mundial de Quadribol, cada vitória vale 7 pontos, cada empate 3 pontos e derrota 0 pontos
- Escreva uma função que receba o numero de vitorias, empates e derrotas e retorne a pontuação final.
O que será testado:
- A função
getPoints
, deverá receber o valor final de pontos de um determinado time, de acordo com suas vitórias, empates e derrotas.
Implemente a função sumMinMax
que deve somar o valor do maior número do array passado por parâmetro com o menor número.
- Deverá ser somado o valor do maior valor do array passado por parâmetro com o menor.
MAIOR NUMERO + MENOS NUMERO = RESULTADO.
O que será testado:
- A função
sumMinMax
, deverá retornar a soma do maior e menor valor do array passado por parâmetro.
Implemente a função polarEncoder
que codifica frase para o código Zenit Polar.
-
Quando a letra for Z, troque por P.
-
Quando a letra for E, troque por O.
-
Quando a letra for N, troque por L.
-
Quando a letra for I, troque por A.
-
Quando a letra for T, troque por R.
-
Quando a letra for P, troque por Z.
-
Quando a letra for O, troque por E.
-
Quando a letra for L, troque por N.
-
Quando a letra for A, troque por I.
-
Quando a letra for R, troque por T.
Exemplo: vamos para o hexa brasil = vimes ziti e hoxi btisan
- O retorno final deve ser em letras minusculas.
O que será testado:
- A função
polarEncoder
, recebendo uma frase como parâmetro, deve substituir cada letra com o que foi especificado acima, criando assim um código de comunicação chamado Zenit Polar.
Implemente a função encodeLetter
e decodeLetter
que codifica e decodifica as vogais para o código aulão.
- A função
encodeLetter
deve codificar as vogais com a seguinte regra:
// Quando a letra for A, troque por @.
// Quando a letra for E, troque por 3.
// Quando a letra for I, troque por !.
// Quando a letra for O, troque por 0.
// Quando a letra for U, troque por Ʉ.
- A função
decodeLetter
deve codificar as vogais com a seguinte regra:
// Quando a letra for @, troque por a.
// Quando a letra for 3, troque por e.
// Quando a letra for !, troque por i.
// Quando a letra for 0, troque por o.
// Quando a letra for Ʉ, troque por u.
O que será testado:
-
A função
encodeLetter
, deverá substituir as vogais da frase passada por parâmetro, pelo código especificado acima. -
A função
decodeLetter
, deverá substituir uma frase codificada para as vogais novamente.
Implemente a função sumAndMultiplyBy2
somando todos os valores de um array de números e retorne o valor multiplicado por 2
- Deverá somar todos os números dentro de um array e retornar o valor multiplicado por 2.
O que será testado:
- A função
sumAndMultiplyBy2
, deverá somar todos os números dentro de um array e retornar o valor multiplicado por 2.
Implemente a função sumEvenNumbers e sumOddNumbers
que receba um array de números e retorne a soma dos números pares e depois dos ímpares.
- A primeira função deve retornar somente a soma dos números pares.
- A segunda função deve retornar somente a soma dos números ímpares.
O que será testado:
-
A função
sumEvenNumbers
, deverá retornar somente a soma dos números pares passados num array por parâmetro. -
A função
sumOddNumbers
, deverá retornar somente a soma dos números impares passados num array por parâmetro.
Implemente a função validateCPF
que recebe um CPF como parâmetro e retorne se ele é válido ou não.
- Lembre-se que o argumento passado sera testado no seguinte formato:
[1,2,3,4,3,2,1,3,2,3,4]
- O retorno deve ser nesse formato:
CPF: XXX.XXX.XXX-XX" (Onde X é um número).
- Caso o CPF seja inválido, retorne:
CPF Inválido
O que será testado:
-
A função
validateCPF
, receberá um array de números passados por parâmetro e deve retornar no formato especificado o CPF da pessoa caso for válido. -
A função
validateCPF
, caso contenha uma String dentro do Array passado por parâmetro, deve retornar CPF Inválido. -
A função
validateCPF
, caso contenha um número maior do que 9 dentro do array passado por parâmetro, deve retornar CPF Inválido. -
A função
validateCPF
, caso contenha um número menor do que 0 dentro do array passado por parâmetro, deve retornar CPF Inválido.
Implemente a função salaryAdjustment
que seja capaz de fazer o reajuste salarial de um funcionário.
- O programa deve receber o salário atual do funcionário e o reajuste em porcentagem.
- Anualmente o funcionário recebe um reajuste anual fixo de
5%
. - O programa deve retornar o salário atual, o reajuste e o novo salário em
5 anos
.
Exemplo de retorno:
Novo salário em 5 anos: R$ 1234.56
O que será testado:
- A função
salaryAdjustment
, deverá mostrar o valor atualizado do valor de um funcionário em 5 anos dado um valor passado por parametro.
Implemente a função highestNumber e lowestNumber
que calcule quantas vezes se repete o maior número e menor em um array
- Crie um programa que calcule quantas vezes se repete o maior número em um array.
Exemplo: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10] => 4
- Crie um programa que receba um array de números e retorne o menor número.
Exemplo: [1, 2, 3, 4, 5, 1, 7, 8, 9, 10] => 2
O que será testado:
- A função
highestNumber
, deve mostrar quantas vezes se repete o maior número. - A função
lowestNumber
, deve mostrar quantas vezes se repete o menor número.