Search in sources :

Example 1 with LocalDateTimeValue

use of org.neo4j.values.storable.LocalDateTimeValue in project neo4j by neo4j.

the class PrettyPrinterTest method shouldHandleLocalDateTime.

@Test
void shouldHandleLocalDateTime() {
    LocalDateTimeValue localDateTime = localDateTime(2015, 8, 8, 8, 40, 29, 999888111);
    PrettyPrinter printer = new PrettyPrinter();
    localDateTime.writeTo(printer);
    assertEquals("{localDateTime: \"2015-08-08T08:40:29.999888111\"}", printer.value());
}
Also used : LocalDateTimeValue(org.neo4j.values.storable.LocalDateTimeValue) Test(org.junit.jupiter.api.Test)

Example 2 with LocalDateTimeValue

use of org.neo4j.values.storable.LocalDateTimeValue in project neo4j by neo4j.

the class AppendOnlyValuesContainerTest method addGet.

@TestFactory
Stream<DynamicTest> addGet() {
    final List<Pair<String, Value[]>> inputs = asList(testInput("NoValue", Function.identity(), Values.NO_VALUE), testInput("Boolean", Values::booleanValue, true, false, true, false), testInput("BooleanArray", Values::booleanArray, new boolean[] { false, true, false }, EMPTY_BOOLEAN_ARRAY), testInput("Byte", Values::byteValue, (byte) 0, (byte) 1, (byte) -1, Byte.MIN_VALUE, Byte.MAX_VALUE), testInput("ByteArray", Values::byteArray, new byte[] { (byte) 0, (byte) 1, (byte) -1, Byte.MIN_VALUE, Byte.MAX_VALUE }, EMPTY_BYTE_ARRAY), testInput("Short", Values::shortValue, (short) 0, (short) 1, (short) -1, Short.MIN_VALUE, Short.MAX_VALUE), testInput("ShortArray", Values::shortArray, new short[] { (short) 0, (short) 1, (short) -1, Short.MIN_VALUE, Short.MAX_VALUE }, EMPTY_SHORT_ARRAY), testInput("Char", Values::charValue, 'a', '\uFFFF', '∂', '©'), testInput("CharArray", Values::charArray, new char[] { 'a', '\uFFFF', '∂', '©' }, EMPTY_CHAR_ARRAY), testInput("Int", Values::intValue, 0, 1, -1, Integer.MIN_VALUE, Integer.MAX_VALUE), testInput("IntArray", Values::intArray, new int[] { 0, 1, -1, Integer.MIN_VALUE, Integer.MAX_VALUE }, EMPTY_INT_ARRAY), testInput("Long", Values::longValue, 0L, 1L, -1L, Long.MIN_VALUE, Long.MAX_VALUE), testInput("LongArray", Values::longArray, new long[] { 0L, 1L, -1L, Long.MIN_VALUE, Long.MAX_VALUE }, EMPTY_LONG_ARRAY), testInput("Double", Values::doubleValue, 0.0, 1.0, -1.0, Double.MIN_VALUE, Double.MAX_VALUE, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY), testInput("DoubleArray", Values::doubleArray, new double[] { 0.0, 1.0, -1.0, Double.MIN_VALUE, Double.MAX_VALUE, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY }, EMPTY_DOUBLE_ARRAY), testInput("Float", Values::floatValue, 0.0f, 1.0f, -1.0f, Float.MIN_VALUE, Float.MAX_VALUE, Float.NEGATIVE_INFINITY, Float.POSITIVE_INFINITY), testInput("FloatArray", Values::floatArray, new float[] { 0.0f, 1.0f, -1.0f, Float.MIN_VALUE, Float.MAX_VALUE, Float.NEGATIVE_INFINITY, Float.POSITIVE_INFINITY }, EMPTY_FLOAT_ARRAY), testInput("String", Values::stringValue, "", "x", "foobar"), testInput("StringArray", Values::stringArray, new String[] { "", "x", "foobar" }, EMPTY_STRING_ARRAY), testInput("Point", input -> pointValue(input.getOne(), input.getTwo()), Tuples.pair(CoordinateReferenceSystem.WGS84, new double[] { 1.0, 2.0 }), Tuples.pair(CoordinateReferenceSystem.WGS84_3D, new double[] { 1.0, 2.0, 3.0 }), Tuples.pair(CoordinateReferenceSystem.Cartesian, new double[] { 1.0, 2.0 }), Tuples.pair(CoordinateReferenceSystem.Cartesian_3D, new double[] { 1.0, 2.0, 3.0 })), testInput("PointArray", Values::pointArray, new Point[] { pointValue(CoordinateReferenceSystem.WGS84, 1.0, 2.0), pointValue(CoordinateReferenceSystem.WGS84_3D, 1.0, 2.0, 3.0), pointValue(CoordinateReferenceSystem.Cartesian, 1.0, 2.0), pointValue(CoordinateReferenceSystem.Cartesian_3D, 1.0, 2.0, 3.0) }, new Point[0]), testInput("Duration", Values::durationValue, (TemporalAmount) Duration.parse("P2DT3H4M"), Period.parse("P1Y2M3W4D")), testInput("DurationArray", Values::durationArray, new TemporalAmount[] { Duration.parse("P2DT3H4M"), Period.parse("P1Y2M3W4D") }, new TemporalAmount[0]), testInput("Date", DateValue::date, LocalDate.now(), LocalDate.parse("1977-05-25")), testInput("DateArray", Values::dateArray, new LocalDate[] { LocalDate.now(), LocalDate.parse("1977-05-25") }, new LocalDate[0]), testInput("Time", TimeValue::time, OffsetTime.now(), OffsetTime.parse("19:28:34.123+02:00")), testInput("TimeArray", Values::timeArray, new OffsetTime[] { OffsetTime.now(), OffsetTime.parse("19:28:34.123+02:00") }, new OffsetTime[0]), testInput("LocalTime", LocalTimeValue::localTime, LocalTime.now(), LocalTime.parse("19:28:34.123")), testInput("LocalTimeArray", Values::localTimeArray, new LocalTime[] { LocalTime.now(), LocalTime.parse("19:28:34.123") }, new LocalTime[0]), testInput("LocalDateTime", LocalDateTimeValue::localDateTime, LocalDateTime.now(), LocalDateTime.parse("1956-10-04T19:28:34.123")), testInput("LocalDateTimeArray", Values::localDateTimeArray, new LocalDateTime[] { LocalDateTime.now(), LocalDateTime.parse("1956-10-04T19:28:34.123") }, new LocalDateTime[0]), testInput("DateTime", DateTimeValue::datetime, ZonedDateTime.now(), ZonedDateTime.parse("1956-10-04T19:28:34.123+01:00[Europe/Paris]"), ZonedDateTime.parse("1956-10-04T19:28:34.123+01:15"), ZonedDateTime.parse("2018-09-13T16:12:16.12345+14:00[Pacific/Kiritimati]"), ZonedDateTime.parse("2018-09-13T16:12:16.12345-12:00[Etc/GMT+12]"), ZonedDateTime.parse("2018-09-13T16:12:16.12345-18:00"), ZonedDateTime.parse("2018-09-13T16:12:16.12345+18:00")), testInput("DateTimeArray", Values::dateTimeArray, new ZonedDateTime[] { ZonedDateTime.parse("1956-10-04T19:28:34.123+01:00[Europe/Paris]"), ZonedDateTime.parse("1956-10-04T19:28:34.123+01:15"), ZonedDateTime.parse("2018-09-13T16:12:16.12345+14:00[Pacific/Kiritimati]"), ZonedDateTime.parse("2018-09-13T16:12:16.12345-12:00[Etc/GMT+12]"), ZonedDateTime.parse("2018-09-13T16:12:16.12345-18:00"), ZonedDateTime.parse("2018-09-13T16:12:16.12345+18:00") }, new ZonedDateTime[0]));
    return DynamicTest.stream(inputs.iterator(), Pair::getOne, pair -> {
        final Value[] values = pair.getTwo();
        final long[] refs = Arrays.stream(values).mapToLong(container::add).toArray();
        for (int i = 0; i < values.length; i++) {
            assertEquals(values[i], container.get(refs[i]));
        }
    });
}
Also used : Arrays(java.util.Arrays) TestFactory(org.junit.jupiter.api.TestFactory) RandomExtension(org.neo4j.test.extension.RandomExtension) ZonedDateTime(java.time.ZonedDateTime) Value(org.neo4j.values.storable.Value) LocalMemoryTracker(org.neo4j.memory.LocalMemoryTracker) MutableList(org.eclipse.collections.api.list.MutableList) EMPTY_BYTE_ARRAY(org.apache.commons.lang3.ArrayUtils.EMPTY_BYTE_ARRAY) AfterAll(org.junit.jupiter.api.AfterAll) EMPTY_CHAR_ARRAY(org.apache.commons.lang3.ArrayUtils.EMPTY_CHAR_ARRAY) Values.longValue(org.neo4j.values.storable.Values.longValue) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) EMPTY_BOOLEAN_ARRAY(org.apache.commons.lang3.ArrayUtils.EMPTY_BOOLEAN_ARRAY) RandomRule(org.neo4j.test.rule.RandomRule) Arrays.asList(java.util.Arrays.asList) Duration(java.time.Duration) Tuples(org.eclipse.collections.impl.tuple.Tuples) LocalTime(java.time.LocalTime) OffsetTime(java.time.OffsetTime) Test(org.junit.jupiter.api.Test) LocalDateTimeValue(org.neo4j.values.storable.LocalDateTimeValue) List(java.util.List) Stream(java.util.stream.Stream) TimeValue(org.neo4j.values.storable.TimeValue) EMPTY_FLOAT_ARRAY(org.apache.commons.lang3.ArrayUtils.EMPTY_FLOAT_ARRAY) ObjectLongPair(org.eclipse.collections.api.tuple.primitive.ObjectLongPair) DateTimeValue(org.neo4j.values.storable.DateTimeValue) Values.intValue(org.neo4j.values.storable.Values.intValue) LocalDate(java.time.LocalDate) CachingOffHeapBlockAllocator(org.neo4j.kernel.impl.util.collection.CachingOffHeapBlockAllocator) EMPTY_SHORT_ARRAY(org.apache.commons.lang3.ArrayUtils.EMPTY_SHORT_ARRAY) EMPTY_LONG_ARRAY(org.apache.commons.lang3.ArrayUtils.EMPTY_LONG_ARRAY) Assertions.assertThrows(org.junit.jupiter.api.Assertions.assertThrows) EMPTY_DOUBLE_ARRAY(org.apache.commons.lang3.ArrayUtils.EMPTY_DOUBLE_ARRAY) LocalDateTime(java.time.LocalDateTime) EmptyMemoryTracker(org.neo4j.memory.EmptyMemoryTracker) Function(java.util.function.Function) FastList(org.eclipse.collections.impl.list.mutable.FastList) ArrayList(java.util.ArrayList) Values(org.neo4j.values.storable.Values) Values.pointValue(org.neo4j.values.storable.Values.pointValue) Inject(org.neo4j.test.extension.Inject) PrimitiveTuples.pair(org.eclipse.collections.impl.tuple.primitive.PrimitiveTuples.pair) TemporalAmount(java.time.temporal.TemporalAmount) Point(org.neo4j.graphdb.spatial.Point) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) Pair(org.eclipse.collections.api.tuple.Pair) LocalTimeValue(org.neo4j.values.storable.LocalTimeValue) MemoryTracker(org.neo4j.memory.MemoryTracker) EMPTY_INT_ARRAY(org.apache.commons.lang3.ArrayUtils.EMPTY_INT_ARRAY) Period(java.time.Period) OffHeapMemoryAllocator(org.neo4j.kernel.impl.util.collection.OffHeapMemoryAllocator) Values.stringValue(org.neo4j.values.storable.Values.stringValue) AfterEach(org.junit.jupiter.api.AfterEach) EMPTY_STRING_ARRAY(org.apache.commons.lang3.ArrayUtils.EMPTY_STRING_ARRAY) CoordinateReferenceSystem(org.neo4j.values.storable.CoordinateReferenceSystem) DateValue(org.neo4j.values.storable.DateValue) DynamicTest(org.junit.jupiter.api.DynamicTest) LocalDateTime(java.time.LocalDateTime) LocalTime(java.time.LocalTime) Point(org.neo4j.graphdb.spatial.Point) LocalDate(java.time.LocalDate) Point(org.neo4j.graphdb.spatial.Point) ZonedDateTime(java.time.ZonedDateTime) OffsetTime(java.time.OffsetTime) TemporalAmount(java.time.temporal.TemporalAmount) Value(org.neo4j.values.storable.Value) Values.longValue(org.neo4j.values.storable.Values.longValue) LocalDateTimeValue(org.neo4j.values.storable.LocalDateTimeValue) TimeValue(org.neo4j.values.storable.TimeValue) DateTimeValue(org.neo4j.values.storable.DateTimeValue) Values.intValue(org.neo4j.values.storable.Values.intValue) Values.pointValue(org.neo4j.values.storable.Values.pointValue) LocalTimeValue(org.neo4j.values.storable.LocalTimeValue) Values.stringValue(org.neo4j.values.storable.Values.stringValue) DateValue(org.neo4j.values.storable.DateValue) ObjectLongPair(org.eclipse.collections.api.tuple.primitive.ObjectLongPair) Pair(org.eclipse.collections.api.tuple.Pair) TestFactory(org.junit.jupiter.api.TestFactory)

Example 3 with LocalDateTimeValue

use of org.neo4j.values.storable.LocalDateTimeValue in project neo4j by neo4j.

the class LiteralJavaccParserTest method shouldInterpretLocalDateTime.

@Test
void shouldInterpretLocalDateTime() throws ParseException {
    LocalDateTimeValue date = LocalDateTimeValue.localDateTime(2020, 12, 10, 6, 41, 23, 0);
    assertEquals(date, parseLiteral("localdatetime('2020-12-10T6:41:23.0')"));
    assertEquals(date, parseLiteral("localdatetime({year:2020, month:12, day:10, hour: 6, minute: 41, second: 23})"));
    // should not throw
    assertNotNull(parseLiteral("localdatetime()"));
    assertThrows(IllegalArgumentException.class, () -> parseLiteral("localdatetime(2020, 12, 10, 6, 41, 23, 0)"));
    assertNull(parseLiteral("localdatetime(null)"));
}
Also used : LocalDateTimeValue(org.neo4j.values.storable.LocalDateTimeValue) Test(org.junit.jupiter.api.Test)

Aggregations

Test (org.junit.jupiter.api.Test)3 LocalDateTimeValue (org.neo4j.values.storable.LocalDateTimeValue)3 Duration (java.time.Duration)1 LocalDate (java.time.LocalDate)1 LocalDateTime (java.time.LocalDateTime)1 LocalTime (java.time.LocalTime)1 OffsetTime (java.time.OffsetTime)1 Period (java.time.Period)1 ZonedDateTime (java.time.ZonedDateTime)1 TemporalAmount (java.time.temporal.TemporalAmount)1 ArrayList (java.util.ArrayList)1 Arrays (java.util.Arrays)1 Arrays.asList (java.util.Arrays.asList)1 List (java.util.List)1 Function (java.util.function.Function)1 Stream (java.util.stream.Stream)1 EMPTY_BOOLEAN_ARRAY (org.apache.commons.lang3.ArrayUtils.EMPTY_BOOLEAN_ARRAY)1 EMPTY_BYTE_ARRAY (org.apache.commons.lang3.ArrayUtils.EMPTY_BYTE_ARRAY)1 EMPTY_CHAR_ARRAY (org.apache.commons.lang3.ArrayUtils.EMPTY_CHAR_ARRAY)1 EMPTY_DOUBLE_ARRAY (org.apache.commons.lang3.ArrayUtils.EMPTY_DOUBLE_ARRAY)1