InstruçÔes

Definir um tipo de dado primitivo

Defina um tipo que se comporte como um nĂșmero inteiro, mas que tenha seu valor menor vĂĄlido de 1 e seu maior valor vĂĄlido de 10. Tratamento de erro: <ul> <li>If you try to instantiate a <code>Num</code> with a value outside of 1 - 10, it should throw a <code>TypeError</code> with an error message of <code>'Out of range'</code>.</li> <li>If you try to instantiate a <code>Num</code> with a value that is not a number, it should throw a <code>TypeError</code> with an error message of <code>'Not a Number'</code>.</li> </ul>

O que fazer:

Testes:

  • `Num` deve ser uma função.
  • `new Num(4)` deve retornar um objeto.
  • `new Num('test')` deve lançar um TypeError com a mensagem 'Not a Number'.
  • `new Num(0)` deve lançar um TypeError com a mensagem 'Out of range'.
  • `new Num(-5)` deve lançar um TypeError com a mensagem 'Out of range'.
  • `new Num(10)` should throw a TypeError with message 'Out of range'.
  • `new Num(20)` should throw a TypeError with message 'Out of range'.
  • `new Num(3) + new Num(4)` deve ser igual a 7.
  • `new Num(3) - new Num(4)` deve ser igual a -1.
  • `new Num(3) * new Num(4)` deve ser igual a 12.
  • `new Num(3) / new Num(4)` deve ser igual a 0.75.
  • `new Num(3) < new Num(4)` deve ser true.
  • `new Num(3) > new Num(4)` deve ser false.
  • `(new Num(5)).toString()` deve retornar '5'

Console