diff --git a/SquareToCircleConverter.java b/SquareToCircleConverter.java new file mode 100644 index 0000000..841185d --- /dev/null +++ b/SquareToCircleConverter.java @@ -0,0 +1,25 @@ +public class SquareToCircleConverter implements ShapeConverter { + @Override + public Circle convert(Square source) { + if (!canConvert(source)) { + throw new IllegalArgumentException("Cannot convert null square"); + } + + // Calculate radius of circle with equal area to the square + double squareArea = source.calculateArea(); + double circleRadius = Math.sqrt(squareArea / Math.PI); + + // Create circle with the same color as the square + return new Circle(circleRadius, source.getColor()); + } + + @Override + public boolean canConvert(Square source) { + return source != null && source.getSide() > 0; + } + + @Override + public String getConversionDescription() { + return "Converts a square to a circle with equal area and same color"; + } +} \ No newline at end of file