/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.flink.graph.drivers.input; import org.apache.flink.graph.asm.translate.TranslateFunction; import org.apache.flink.graph.drivers.input.GeneratedGraph.LongValueToChar; import org.apache.flink.graph.drivers.input.GeneratedGraph.LongValueToCharValue; import org.apache.flink.graph.drivers.input.GeneratedGraph.LongValueToString; import org.apache.flink.graph.drivers.input.GeneratedGraph.LongValueToUnsignedByte; import org.apache.flink.graph.drivers.input.GeneratedGraph.LongValueToUnsignedByteValue; import org.apache.flink.graph.drivers.input.GeneratedGraph.LongValueToUnsignedInt; import org.apache.flink.graph.drivers.input.GeneratedGraph.LongValueToLong; import org.apache.flink.graph.drivers.input.GeneratedGraph.LongValueToUnsignedShort; import org.apache.flink.graph.drivers.input.GeneratedGraph.LongValueToUnsignedShortValue; import org.apache.flink.types.ByteValue; import org.apache.flink.types.CharValue; import org.apache.flink.types.LongValue; import org.apache.flink.types.ShortValue; import org.junit.Test; import static org.junit.Assert.assertEquals; public class GeneratedGraphTest { private TranslateFunction<LongValue, ByteValue> byteValueTranslator = new LongValueToUnsignedByteValue(); private TranslateFunction<LongValue, Byte> byteTranslator = new LongValueToUnsignedByte(); private TranslateFunction<LongValue, ShortValue> shortValueTranslator = new LongValueToUnsignedShortValue(); private TranslateFunction<LongValue, Short> shortTranslator = new LongValueToUnsignedShort(); private TranslateFunction<LongValue, CharValue> charValueTranslator = new LongValueToCharValue(); private TranslateFunction<LongValue, Character> charTranslator = new LongValueToChar(); private TranslateFunction<LongValue, Integer> intTranslator = new LongValueToUnsignedInt(); private TranslateFunction<LongValue, Long> longTranslator = new LongValueToLong(); private TranslateFunction<LongValue, String> stringTranslator = new LongValueToString(); private ByteValue byteValue = new ByteValue(); private ShortValue shortValue = new ShortValue(); private CharValue charValue = new CharValue(); // ByteValue @Test public void testByteValueTranslation() throws Exception { assertEquals(new ByteValue((byte) 0), byteValueTranslator.translate(new LongValue(0L), byteValue)); assertEquals(new ByteValue(Byte.MIN_VALUE), byteValueTranslator.translate(new LongValue((long) Byte.MAX_VALUE + 1), byteValue)); assertEquals(new ByteValue((byte) -1), byteValueTranslator.translate(new LongValue((1L << 8) - 1), byteValue)); } @Test(expected=IllegalArgumentException.class) public void testByteValueTranslationUpperOutOfRange() throws Exception { byteValueTranslator.translate(new LongValue(1L << 8), byteValue); } @Test(expected=IllegalArgumentException.class) public void testByteValueTranslationLowerOutOfRange() throws Exception { byteValueTranslator.translate(new LongValue(-1), byteValue); } // Byte @Test public void testByteTranslation() throws Exception { assertEquals(Byte.valueOf((byte) 0), byteTranslator.translate(new LongValue(0L), null)); assertEquals(Byte.valueOf(Byte.MIN_VALUE), byteTranslator.translate(new LongValue((long) Byte.MAX_VALUE + 1), null)); assertEquals(Byte.valueOf((byte) -1), byteTranslator.translate(new LongValue((1L << 8) - 1), null)); } @Test(expected=IllegalArgumentException.class) public void testByteTranslationUpperOutOfRange() throws Exception { byteTranslator.translate(new LongValue(1L << 8), null); } @Test(expected=IllegalArgumentException.class) public void testByteTranslationLowerOutOfRange() throws Exception { byteTranslator.translate(new LongValue(-1), null); } // ShortValue @Test public void testShortValueTranslation() throws Exception { assertEquals(new ShortValue((short) 0), shortValueTranslator.translate(new LongValue(0L), shortValue)); assertEquals(new ShortValue(Short.MIN_VALUE), shortValueTranslator.translate(new LongValue((long) Short.MAX_VALUE + 1), shortValue)); assertEquals(new ShortValue((short) -1), shortValueTranslator.translate(new LongValue((1L << 16) - 1), shortValue)); } @Test(expected=IllegalArgumentException.class) public void testShortValueTranslationUpperOutOfRange() throws Exception { shortValueTranslator.translate(new LongValue(1L << 16), shortValue); } @Test(expected=IllegalArgumentException.class) public void testShortValueTranslationLowerOutOfRange() throws Exception { shortValueTranslator.translate(new LongValue(-1), shortValue); } // Short @Test public void testShortTranslation() throws Exception { assertEquals(Short.valueOf((short) 0), shortTranslator.translate(new LongValue(0L), null)); assertEquals(Short.valueOf(Short.MIN_VALUE), shortTranslator.translate(new LongValue((long) Short.MAX_VALUE + 1), null)); assertEquals(Short.valueOf((short) -1), shortTranslator.translate(new LongValue((1L << 16) - 1), null)); } @Test(expected=IllegalArgumentException.class) public void testShortTranslationUpperOutOfRange() throws Exception { shortTranslator.translate(new LongValue(1L << 16), null); } @Test(expected=IllegalArgumentException.class) public void testShortTranslationLowerOutOfRange() throws Exception { shortTranslator.translate(new LongValue(-1), null); } // CharValue @Test public void testCharValueTranslation() throws Exception { assertEquals(new CharValue((char) 0), charValueTranslator.translate(new LongValue(0L), charValue)); assertEquals(new CharValue(Character.MAX_VALUE), charValueTranslator.translate(new LongValue((long) Character.MAX_VALUE), charValue)); } @Test(expected=IllegalArgumentException.class) public void testCharValueTranslationUpperOutOfRange() throws Exception { charValueTranslator.translate(new LongValue(1L << 16), charValue); } @Test(expected=IllegalArgumentException.class) public void testCharValueTranslationLowerOutOfRange() throws Exception { charValueTranslator.translate(new LongValue(-1), charValue); } // Character @Test public void testCharacterTranslation() throws Exception { assertEquals(Character.valueOf((char) 0), charTranslator.translate(new LongValue(0L), null)); assertEquals(Character.valueOf(Character.MAX_VALUE), charTranslator.translate(new LongValue((long) Character.MAX_VALUE), null)); } @Test(expected=IllegalArgumentException.class) public void testCharacterTranslationUpperOutOfRange() throws Exception { charTranslator.translate(new LongValue(1L << 16), null); } @Test(expected=IllegalArgumentException.class) public void testCharacterTranslationLowerOutOfRange() throws Exception { charTranslator.translate(new LongValue(-1), null); } // Integer @Test public void testIntegerTranslation() throws Exception { assertEquals(Integer.valueOf(0), intTranslator.translate(new LongValue(0L), null)); assertEquals(Integer.valueOf(Integer.MIN_VALUE), intTranslator.translate(new LongValue((long) Integer.MAX_VALUE + 1), null)); assertEquals(Integer.valueOf(-1), intTranslator.translate(new LongValue((1L << 32) - 1), null)); } @Test(expected=IllegalArgumentException.class) public void testIntegerTranslationUpperOutOfRange() throws Exception { intTranslator.translate(new LongValue(1L << 32), null); } @Test(expected=IllegalArgumentException.class) public void testIntegerTranslationLowerOutOfRange() throws Exception { intTranslator.translate(new LongValue(-1), null); } // Long @Test public void testLongTranslation() throws Exception { assertEquals(Long.valueOf(0L), longTranslator.translate(new LongValue(0L), null)); assertEquals(Long.valueOf(Long.MIN_VALUE), longTranslator.translate(new LongValue(Long.MIN_VALUE), null)); assertEquals(Long.valueOf(Long.MAX_VALUE), longTranslator.translate(new LongValue(Long.MAX_VALUE), null)); } // String @Test public void testStringTranslation() throws Exception { assertEquals("0", stringTranslator.translate(new LongValue(0L), null)); assertEquals("-9223372036854775808", stringTranslator.translate(new LongValue(Long.MIN_VALUE), null)); assertEquals("9223372036854775807", stringTranslator.translate(new LongValue(Long.MAX_VALUE), null)); } }