#Shapes Using the new ES6 features related to prototyping, implement a small library to define geometric shapes (not visually) and allow basic calculations. ###Requirements
- The shapes to define are Circle, Square and Rectangle.
- All shapes must define a function to calculate the area and perimeter .
- Use a only positive coordinate system (implement validations while building the shapes or changing its properties).
- Implement a predicate function
collidesWith
to check if the shape collides with another shape of the same type. - Given a list of shapes, print its properties and the area and perimeter properties.
- All functionalities should be properly tested.