// Path: src/main/java/com/codegame/codeseries/notreal2d/form/CircularForm.java
// public class CircularForm extends Form {
//     private final double radius;
//     private final double angularMassFactor;
// 
//     public CircularForm(double radius) {
//         super(Shape.CIRCLE);
// 
//         if (Double.isNaN(radius) || Double.isInfinite(radius) || radius <= 0.0D) {
//             throw new IllegalArgumentException(String.format(
//                     "Argument 'radius' should be positive finite number but got %s.", radius
//             ));
//         }
// 
//         this.radius = radius;
//         this.angularMassFactor = radius * radius / 2.0D;
//     }
// 
//     public double getRadius() {
//         return radius;
//     }
// 
//     @Override
//     public double getCircumcircleRadius() {
//         return radius;
//     }
// 
//     @Nonnull
//     @Override
//     public Point2D getCenterOfMass(@Nonnull Point2D position, double angle) {
//         return position;
//     }
// 
//     @Override
//     public double getAngularMass(double mass) {
//         return mass * angularMassFactor;
//     }
// 
//     @Override
//     public String toString() {
//         return StringUtil.toString(this, false, "radius");
//     }
// }


import com.codegame.codeseries.notreal2d.form.CircularForm;
import org.junit.Assert;
import org.junit.Test;
import static com.codeforces.commons.math.Math.max;
import static com.codeforces.commons.math.Math.pow;

package com.codegame.codeseries.notreal2d;



/**
 * @author Maxim Shipko (sladethe@gmail.com)
 *         Date: 08.06.2015
 */
@SuppressWarnings("OverlyLongMethod")
public class WorldTest {
    @Test
    public void testMovement() throws Exception {
        int iterationCountPerStep = Defaults.ITERATION_COUNT_PER_STEP;
        int stepCountPerTimeUnit = 10;

        World world = new World(iterationCountPerStep, stepCountPerTimeUnit);

        Body body = new Body();

// Path: src/main/java/com/codegame/codeseries/notreal2d/form/CircularForm.java
// public class CircularForm extends Form {
//     private final double radius;
//     private final double angularMassFactor;
// 
//     public CircularForm(double radius) {
//         super(Shape.CIRCLE);
// 
//         if (Double.isNaN(radius) || Double.isInfinite(radius) || radius <= 0.0D) {
//             throw new IllegalArgumentException(String.format(
//                     "Argument 'radius' should be positive finite number but got %s.", radius
//             ));
//         }
// 
//         this.radius = radius;
//         this.angularMassFactor = radius * radius / 2.0D;
//     }
// 
//     public double getRadius() {
//         return radius;
//     }
// 
//     @Override
//     public double getCircumcircleRadius() {
//         return radius;
//     }
// 
//     @Nonnull
//     @Override
//     public Point2D getCenterOfMass(@Nonnull Point2D position, double angle) {
//         return position;
//     }
// 
//     @Override
//     public double getAngularMass(double mass) {
//         return mass * angularMassFactor;
//     }
// 
//     @Override
//     public String toString() {
//         return StringUtil.toString(this, false, "radius");
//     }
// }


// Path: src/test/java/com/codegame/codeseries/notreal2d/WorldTest.java
import com.codegame.codeseries.notreal2d.form.CircularForm;
import org.junit.Assert;
import org.junit.Test;
import static com.codeforces.commons.math.Math.max;
import static com.codeforces.commons.math.Math.pow;

package com.codegame.codeseries.notreal2d;



/**
 * @author Maxim Shipko (sladethe@gmail.com)
 *         Date: 08.06.2015
 */
@SuppressWarnings("OverlyLongMethod")
public class WorldTest {
    @Test
    public void testMovement() throws Exception {
        int iterationCountPerStep = Defaults.ITERATION_COUNT_PER_STEP;
        int stepCountPerTimeUnit = 10;

        World world = new World(iterationCountPerStep, stepCountPerTimeUnit);

        Body body = new Body();

        body.setForm(new CircularForm(1.0D));
