// Path: src/test/java/org/shredzone/commons/suncalc/Locations.java
// public final class Locations {
// 
//     /**
//      * Cologne, Germany. A random city on the northern hemisphere.
//      */
//     public static final double[] COLOGNE = new double[] { 50.938056, 6.956944 };
//     public static final ZoneId COLOGNE_TZ = ZoneId.of("Europe/Berlin");
// 
//     /**
//      * Alert, Nunavut, Canada. The northernmost place in the world with a permanent
//      * population.
//      */
//     public static final double[] ALERT = new double[] { 82.5, -62.316667 };
//     public static final ZoneId ALERT_TZ = ZoneId.of("Canada/Eastern");
// 
//     /**
//      * Wellington, New Zealand. A random city on the southern hemisphere, close to the
//      * international date line.
//      */
//     public static final double[] WELLINGTON = new double[] { -41.2875, 174.776111 };
//     public static final ZoneId WELLINGTON_TZ = ZoneId.of("Pacific/Auckland");
// 
//     /**
//      * Puerto Williams, Chile. The southernmost town in the world.
//      */
//     public static final double[] PUERTO_WILLIAMS = new double[] { -54.933333, -67.616667 };
//     public static final ZoneId PUERTO_WILLIAMS_TZ = ZoneId.of("America/Punta_Arenas");
// 
//     /**
//      * Singapore. A random city close to the equator.
//      */
//     public static final double[] SINGAPORE = new double[] { 1.283333, 103.833333 };
//     public static final ZoneId SINGAPORE_TZ = ZoneId.of("Asia/Singapore");
// 
//     /**
//      * Martinique. To test a fix for issue #13.
//      */
//     public static final double[] MARTINIQUE = new double[] { 14.640725, -61.0112 };
//     public static final ZoneId MARTINIQUE_TZ = ZoneId.of("America/Martinique");
// 
//     /**
//      * Sydney. To test a fix for issue #14.
//      */
//     public static final double[] SYDNEY = new double[] { -33.744272, 151.231291 };
//     public static final ZoneId SYDNEY_TZ = ZoneId.of("Australia/Sydney");
// 
//     /**
//      * Santa Monica, CA. To test a fix for issue #18.
//      */
//     public static final double[] SANTA_MONICA = new double[] { 34.0, -118.5 };
//     public static final ZoneId SANTA_MONICA_TZ = ZoneId.of("America/Los_Angeles");
// 
// }


import static java.lang.Math.toRadians;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.failBecauseExceptionWasNotThrown;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Calendar;
import java.util.TimeZone;
import org.assertj.core.api.AbstractDateAssert;
import org.assertj.core.data.Offset;
import org.junit.BeforeClass;
import org.junit.Test;
import org.shredzone.commons.suncalc.Locations;
        // Set test parameters
        TestBuilder p1 = new TestBuilder();
        p1.at(Locations.COLOGNE);
        p1.on(now);
        p1.height(123.0);

        // Make sure copy has identical values
        TestBuilder p2 = p1.copy();
        assertThat(p2.getLatitude()).isEqualTo(Locations.COLOGNE[0]);
        assertThat(p2.getLongitude()).isEqualTo(Locations.COLOGNE[1]);
        assertThat(p2.getJulianDate().getDateTime()).isEqualTo(now);
        assertThat(p2.getHeight()).isEqualTo(123.0);

        // Make sure changes to p1 won't affect p2
        p1.at(Locations.SINGAPORE);
        p1.on(tomorrow);
        assertThat(p1.getLatitude()).isEqualTo(Locations.SINGAPORE[0]);
        assertThat(p1.getLongitude()).isEqualTo(Locations.SINGAPORE[1]);
        assertThat(p1.getJulianDate().getDateTime()).isEqualTo(tomorrow);
        assertThat(p2.getLatitude()).isEqualTo(Locations.COLOGNE[0]);
        assertThat(p2.getLongitude()).isEqualTo(Locations.COLOGNE[1]);
        assertThat(p2.getJulianDate().getDateTime()).isEqualTo(now);

        // Make sure changes to p2 won't affect p1
        p2.at(Locations.WELLINGTON);
        p2.on(yesterday);
        assertThat(p1.getLatitude()).isEqualTo(Locations.SINGAPORE[0]);
        assertThat(p1.getLongitude()).isEqualTo(Locations.SINGAPORE[1]);
        assertThat(p1.getJulianDate().getDateTime()).isEqualTo(tomorrow);
        assertThat(p2.getLatitude()).isEqualTo(Locations.WELLINGTON[0]);
// Path: src/test/java/org/shredzone/commons/suncalc/Locations.java
// public final class Locations {
// 
//     /**
//      * Cologne, Germany. A random city on the northern hemisphere.
//      */
//     public static final double[] COLOGNE = new double[] { 50.938056, 6.956944 };
//     public static final ZoneId COLOGNE_TZ = ZoneId.of("Europe/Berlin");
// 
//     /**
//      * Alert, Nunavut, Canada. The northernmost place in the world with a permanent
//      * population.
//      */
//     public static final double[] ALERT = new double[] { 82.5, -62.316667 };
//     public static final ZoneId ALERT_TZ = ZoneId.of("Canada/Eastern");
// 
//     /**
//      * Wellington, New Zealand. A random city on the southern hemisphere, close to the
//      * international date line.
//      */
//     public static final double[] WELLINGTON = new double[] { -41.2875, 174.776111 };
//     public static final ZoneId WELLINGTON_TZ = ZoneId.of("Pacific/Auckland");
// 
//     /**
//      * Puerto Williams, Chile. The southernmost town in the world.
//      */
//     public static final double[] PUERTO_WILLIAMS = new double[] { -54.933333, -67.616667 };
//     public static final ZoneId PUERTO_WILLIAMS_TZ = ZoneId.of("America/Punta_Arenas");
// 
//     /**
//      * Singapore. A random city close to the equator.
//      */
//     public static final double[] SINGAPORE = new double[] { 1.283333, 103.833333 };
//     public static final ZoneId SINGAPORE_TZ = ZoneId.of("Asia/Singapore");
// 
//     /**
//      * Martinique. To test a fix for issue #13.
//      */
//     public static final double[] MARTINIQUE = new double[] { 14.640725, -61.0112 };
//     public static final ZoneId MARTINIQUE_TZ = ZoneId.of("America/Martinique");
// 
//     /**
//      * Sydney. To test a fix for issue #14.
//      */
//     public static final double[] SYDNEY = new double[] { -33.744272, 151.231291 };
//     public static final ZoneId SYDNEY_TZ = ZoneId.of("Australia/Sydney");
// 
//     /**
//      * Santa Monica, CA. To test a fix for issue #18.
//      */
//     public static final double[] SANTA_MONICA = new double[] { 34.0, -118.5 };
//     public static final ZoneId SANTA_MONICA_TZ = ZoneId.of("America/Los_Angeles");
// 
// }


// Path: src/test/java/org/shredzone/commons/suncalc/util/BaseBuilderTest.java
import static java.lang.Math.toRadians;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.failBecauseExceptionWasNotThrown;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Calendar;
import java.util.TimeZone;
import org.assertj.core.api.AbstractDateAssert;
import org.assertj.core.data.Offset;
import org.junit.BeforeClass;
import org.junit.Test;
import org.shredzone.commons.suncalc.Locations;

        // Set test parameters
        TestBuilder p1 = new TestBuilder();
        p1.at(Locations.COLOGNE);
        p1.on(now);
        p1.height(123.0);

        // Make sure copy has identical values
        TestBuilder p2 = p1.copy();
        assertThat(p2.getLatitude()).isEqualTo(Locations.COLOGNE[0]);
        assertThat(p2.getLongitude()).isEqualTo(Locations.COLOGNE[1]);
        assertThat(p2.getJulianDate().getDateTime()).isEqualTo(now);
        assertThat(p2.getHeight()).isEqualTo(123.0);

        // Make sure changes to p1 won't affect p2
        p1.at(Locations.SINGAPORE);
        p1.on(tomorrow);
        assertThat(p1.getLatitude()).isEqualTo(Locations.SINGAPORE[0]);
        assertThat(p1.getLongitude()).isEqualTo(Locations.SINGAPORE[1]);
        assertThat(p1.getJulianDate().getDateTime()).isEqualTo(tomorrow);
        assertThat(p2.getLatitude()).isEqualTo(Locations.COLOGNE[0]);
        assertThat(p2.getLongitude()).isEqualTo(Locations.COLOGNE[1]);
        assertThat(p2.getJulianDate().getDateTime()).isEqualTo(now);

        // Make sure changes to p2 won't affect p1
        p2.at(Locations.WELLINGTON);
        p2.on(yesterday);
        assertThat(p1.getLatitude()).isEqualTo(Locations.SINGAPORE[0]);
        assertThat(p1.getLongitude()).isEqualTo(Locations.SINGAPORE[1]);
        assertThat(p1.getJulianDate().getDateTime()).isEqualTo(tomorrow);
        assertThat(p2.getLatitude()).isEqualTo(Locations.WELLINGTON[0]);
        assertThat(p2.getLongitude()).isEqualTo(Locations.WELLINGTON[1]);