/** * Convert this {@link GregorianDate} to a {@link JulianDate}. The {@link GregorianDate} is assumed to specify a time in the specified {@link TimeStandard}. * @param timeStandard The time standard in which this {@link GregorianDate} is expressed. The returned {@link JulianDate} will be expressed in this time standard as well, if possible. * @return A {@link JulianDate} representing this date. */ @CS2JWarning("Unhandled attribute removed: Pure") @Nonnull public final JulianDate toJulianDate(@Nonnull TimeStandard timeStandard) { int julianDayNumber = m_yearMonthDay.getJulianDayNumber(); double julianSecondsOfDay = getJulianSecondsOfDay(); if (getIsLeapSecond()) { julianSecondsOfDay -= 1D; } else if (julianSecondsOfDay >= 43200.0) { julianDayNumber -= 1; } JulianDate result = new JulianDate(julianDayNumber, julianSecondsOfDay, timeStandard); if (getIsLeapSecond()) { result = result.addSeconds(1D); } return result; }
dates.add(m_startDate); values.add(new Cartesian(1.0, 2.0, 3.0)); dates.add(m_startDate.addSeconds(60.0)); values.add(new Cartesian(4.0, 5.0, 6.0)); dates.add(m_startDate.addSeconds(120.0)); values.add(new Cartesian(7.0, 8.0, 9.0)); customPropertyWriter.writeCartesian(dates, values);
dates.add(m_startDate); values.add(new Cartesian(1.0, 2.0, 3.0)); dates.add(m_startDate.addSeconds(60.0)); values.add(new Cartesian(4.0, 5.0, 6.0)); dates.add(m_startDate.addSeconds(120.0)); values.add(new Cartesian(7.0, 8.0, 9.0)); customPropertyWriter.writeCartesian(dates, values);
dates.add(startDate); positions.add(new Cartesian(1.0, 2.0, 3.0)); dates.add(startDate.addSeconds(60.0)); positions.add(new Cartesian(4.0, 5.0, 6.0)); dates.add(startDate.addSeconds(120.0)); positions.add(new Cartesian(7.0, 8.0, 9.0)); interval.writeCartesian(dates, positions, 1, 1);
dates.add(startDate); positions.add(new Cartographic(1.1, 2.2, 3.3)); dates.add(startDate.addSeconds(60.0)); positions.add(new Cartographic(4.4, 5.5, 6.6)); interval.writeCartographicRadians(dates, positions);
dates.add(startDate); positions.add(new Cartesian(1.1, 2.2, 3.3)); dates.add(startDate.addSeconds(60.0)); positions.add(new Cartesian(4.4, 5.5, 6.6)); interval.writeCartesian(dates, positions);
/** * Tests the {@link JulianDate#addSeconds} method. */ @Test public final void testAddSeconds() { // Make sure AddSeconds produces the correct answer in the correct time standard. JulianDate test = new JulianDate(2451912, 43200.0, TimeStandard.INTERNATIONAL_ATOMIC_TIME); JulianDate result = test.addSeconds(45.123); AssertHelper.assertEquals(TimeStandard.INTERNATIONAL_ATOMIC_TIME, result.getStandard()); Assert.assertEquals((int) 2451912, (int) result.getDay()); Assert.assertEquals(43245.123, result.getSecondsOfDay(), 0d); }
@Test public final void booleanCanBeWrittenInsideInterval() { JulianDate startDate = new GregorianDate(2012, 6, 7, 12, 0, 0D).toJulianDate(); { final PacketCesiumWriter usingExpression_1 = (getPacket()); try { { BooleanCesiumWriter writer = new BooleanCesiumWriter("foo"); try { writer.open(getOutputStream()); writer.writeInterval(startDate, startDate.addSeconds(100.0)); writer.writeBoolean(false); } finally { DisposeHelper.dispose(writer); } } } finally { DisposeHelper.dispose(usingExpression_1); } } Assert.assertEquals("{\"foo\":{\"interval\":\"20120607T12Z/20120607T120140Z\",\"boolean\":false}}", getStringWriter().toString()); }
@Test public final void labelStyleCanBeWrittenInsideInterval() { JulianDate startDate = new GregorianDate(2012, 6, 7, 12, 0, 0D).toJulianDate(); { final PacketCesiumWriter usingExpression_11 = (getPacket()); try { { LabelStyleCesiumWriter writer = new LabelStyleCesiumWriter("foo"); try { writer.open(getOutputStream()); writer.writeInterval(startDate, startDate.addSeconds(100.0)); writer.writeLabelStyle(CesiumLabelStyle.FILL_AND_OUTLINE); } finally { DisposeHelper.dispose(writer); } } } finally { DisposeHelper.dispose(usingExpression_11); } } Assert.assertEquals("{\"foo\":{\"interval\":\"20120607T12Z/20120607T120140Z\",\"labelStyle\":\"FILL_AND_OUTLINE\"}}", getStringWriter().toString()); }
@Test public final void booleanCanBeWrittenInsideInterval() { JulianDate startDate = new GregorianDate(2012, 6, 7, 12, 0, 0D).toJulianDate(); { final PacketCesiumWriter usingExpression_5 = (getPacket()); try { { BooleanCesiumWriter writer = new BooleanCesiumWriter("foo"); try { writer.open(getOutputStream()); writer.writeInterval(startDate, startDate.addSeconds(100.0)); writer.writeBoolean(false); } finally { DisposeHelper.dispose(writer); } } } finally { DisposeHelper.dispose(usingExpression_5); } } Assert.assertEquals("{\"foo\":{\"interval\":\"20120607T12Z/20120607T120140Z\",\"boolean\":false}}", getStringWriter().toString()); }
@Test public final void horizontalOriginCanBeWrittenInsideInterval() { JulianDate startDate = new GregorianDate(2012, 6, 7, 12, 0, 0D).toJulianDate(); { final PacketCesiumWriter usingExpression_9 = (getPacket()); try { { HorizontalOriginCesiumWriter writer = new HorizontalOriginCesiumWriter("foo"); try { writer.open(getOutputStream()); writer.writeInterval(startDate, startDate.addSeconds(100.0)); writer.writeHorizontalOrigin(CesiumHorizontalOrigin.CENTER); } finally { DisposeHelper.dispose(writer); } } } finally { DisposeHelper.dispose(usingExpression_9); } } Assert.assertEquals("{\"foo\":{\"interval\":\"20120607T12Z/20120607T120140Z\",\"horizontalOrigin\":\"CENTER\"}}", getStringWriter().toString()); }
@Test public final void stringCanBeWrittenInsideInterval() { JulianDate startDate = new GregorianDate(2012, 6, 7, 12, 0, 0D).toJulianDate(); { final PacketCesiumWriter usingExpression_1 = (getPacket()); try { { StringCesiumWriter writer = new StringCesiumWriter("foo"); try { writer.open(getOutputStream()); writer.writeInterval(startDate, startDate.addSeconds(100.0)); writer.writeString("bar"); } finally { DisposeHelper.dispose(writer); } } } finally { DisposeHelper.dispose(usingExpression_1); } } Assert.assertEquals("{\"foo\":{\"interval\":\"20120607T12Z/20120607T120140Z\",\"string\":\"bar\"}}", getStringWriter().toString()); }
@Test public final void doubleCanBeWrittenInsideInterval() { JulianDate startDate = new GregorianDate(2012, 6, 7, 12, 0, 0D).toJulianDate(); { final PacketCesiumWriter usingExpression_1 = (getPacket()); try { { DoubleCesiumWriter writer = new DoubleCesiumWriter("foo"); try { writer.open(getOutputStream()); writer.writeInterval(startDate, startDate.addSeconds(100.0)); writer.writeNumber(1.23); } finally { DisposeHelper.dispose(writer); } } } finally { DisposeHelper.dispose(usingExpression_1); } } Assert.assertEquals("{\"foo\":{\"interval\":\"20120607T12Z/20120607T120140Z\",\"number\":1.23}}", getStringWriter().toString()); }
@Test public final void verticalOriginCanBeWrittenInsideInterval() { JulianDate startDate = new GregorianDate(2012, 6, 7, 12, 0, 0D).toJulianDate(); { final PacketCesiumWriter usingExpression_1 = (getPacket()); try { { VerticalOriginCesiumWriter writer = new VerticalOriginCesiumWriter("foo"); try { writer.open(getOutputStream()); writer.writeInterval(startDate, startDate.addSeconds(100.0)); writer.writeVerticalOrigin(CesiumVerticalOrigin.CENTER); } finally { DisposeHelper.dispose(writer); } } } finally { DisposeHelper.dispose(usingExpression_1); } } Assert.assertEquals("{\"foo\":{\"interval\":\"20120607T12Z/20120607T120140Z\",\"verticalOrigin\":\"CENTER\"}}", getStringWriter().toString()); }
@Test public final void labelStyleCanBeWrittenInsideInterval() { JulianDate startDate = new GregorianDate(2012, 6, 7, 12, 0, 0D).toJulianDate(); { final PacketCesiumWriter usingExpression_1 = (getPacket()); try { { LabelStyleCesiumWriter writer = new LabelStyleCesiumWriter("foo"); try { writer.open(getOutputStream()); writer.writeInterval(startDate, startDate.addSeconds(100.0)); writer.writeLabelStyle(CesiumLabelStyle.FILL_AND_OUTLINE); } finally { DisposeHelper.dispose(writer); } } } finally { DisposeHelper.dispose(usingExpression_1); } } Assert.assertEquals("{\"foo\":{\"interval\":\"20120607T12Z/20120607T120140Z\",\"labelStyle\":\"FILL_AND_OUTLINE\"}}", getStringWriter().toString()); }
@Test public final void horizontalOriginCanBeWrittenInsideInterval() { JulianDate startDate = new GregorianDate(2012, 6, 7, 12, 0, 0D).toJulianDate(); { final PacketCesiumWriter usingExpression_1 = (getPacket()); try { { HorizontalOriginCesiumWriter writer = new HorizontalOriginCesiumWriter("foo"); try { writer.open(getOutputStream()); writer.writeInterval(startDate, startDate.addSeconds(100.0)); writer.writeHorizontalOrigin(CesiumHorizontalOrigin.CENTER); } finally { DisposeHelper.dispose(writer); } } } finally { DisposeHelper.dispose(usingExpression_1); } } Assert.assertEquals("{\"foo\":{\"interval\":\"20120607T12Z/20120607T120140Z\",\"horizontalOrigin\":\"CENTER\"}}", getStringWriter().toString()); }
@Test public final void stringCanBeWrittenInsideInterval() { JulianDate startDate = new GregorianDate(2012, 6, 7, 12, 0, 0D).toJulianDate(); { final PacketCesiumWriter usingExpression_1 = (getPacket()); try { { StringCesiumWriter writer = new StringCesiumWriter("foo"); try { writer.open(getOutputStream()); writer.writeInterval(startDate, startDate.addSeconds(100.0)); writer.writeString("bar"); } finally { DisposeHelper.dispose(writer); } } } finally { DisposeHelper.dispose(usingExpression_1); } } Assert.assertEquals("{\"foo\":{\"interval\":\"20120607T12Z/20120607T120140Z\",\"string\":\"bar\"}}", getStringWriter().toString()); }
@Test public final void doubleCanBeWrittenInsideInterval() { JulianDate startDate = new GregorianDate(2012, 6, 7, 12, 0, 0D).toJulianDate(); { final PacketCesiumWriter usingExpression_3 = (getPacket()); try { { DoubleCesiumWriter writer = new DoubleCesiumWriter("foo"); try { writer.open(getOutputStream()); writer.writeInterval(startDate, startDate.addSeconds(100.0)); writer.writeNumber(1.23); } finally { DisposeHelper.dispose(writer); } } } finally { DisposeHelper.dispose(usingExpression_3); } } Assert.assertEquals("{\"foo\":{\"interval\":\"20120607T12Z/20120607T120140Z\",\"number\":1.23}}", getStringWriter().toString()); }
@Test public final void verticalOriginCanBeWrittenInsideInterval() { JulianDate startDate = new GregorianDate(2012, 6, 7, 12, 0, 0D).toJulianDate(); { final PacketCesiumWriter usingExpression_7 = (getPacket()); try { { VerticalOriginCesiumWriter writer = new VerticalOriginCesiumWriter("foo"); try { writer.open(getOutputStream()); writer.writeInterval(startDate, startDate.addSeconds(100.0)); writer.writeVerticalOrigin(CesiumVerticalOrigin.CENTER); } finally { DisposeHelper.dispose(writer); } } } finally { DisposeHelper.dispose(usingExpression_7); } } Assert.assertEquals("{\"foo\":{\"interval\":\"20120607T12Z/20120607T120140Z\",\"verticalOrigin\":\"CENTER\"}}", getStringWriter().toString()); }
@Test public final void testSecondsDifferenceAtLeapSecond() { JulianDate leapSecond = new JulianDate(2453736, 43232D, TimeStandard.INTERNATIONAL_ATOMIC_TIME); JulianDate utcDate = new JulianDate(2453736, 43232D, TimeStandard.COORDINATED_UNIVERSAL_TIME); Assert.assertEquals(-33, utcDate.secondsDifference(leapSecond), 0d); Assert.assertEquals(33, leapSecond.secondsDifference(utcDate), 0d); JulianDate secondBeforeLeapSecondUTC = leapSecond.subtractSeconds(1D).toTimeStandard(TimeStandard.COORDINATED_UNIVERSAL_TIME); JulianDate secondAfterLeapSecondUTC = leapSecond.addSeconds(1D).toTimeStandard(TimeStandard.COORDINATED_UNIVERSAL_TIME); Assert.assertEquals(2, secondBeforeLeapSecondUTC.secondsDifference(secondAfterLeapSecondUTC), 0d); Assert.assertEquals(2, secondAfterLeapSecondUTC.subtract(secondBeforeLeapSecondUTC).getSeconds(), 0d); }