Skip to content

Fixes gh-1098 Support primitive function interfaces #1199

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from
Closed

Fixes gh-1098 Support primitive function interfaces #1199

wants to merge 2 commits into from

Conversation

JunggiKim
Copy link

@JunggiKim JunggiKim commented Oct 26, 2024

Added support for basic type functions supported by Java

Hello! I've added logic to support Java's basic type function interface

Resolves #1098

Added support for basic type functions
supported by Java

Resolves #1098
@JunggiKim
Copy link
Author

JunggiKim commented Oct 30, 2024

I've written two test codes
Failed to include in pull request.
Please check if the test code is correct
If so, should I apply for pull request again?

`

   @Test
public void testPrimitiveFunctionInputTypes() {

	Type type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntConsumer.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(IntConsumer.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntSupplier.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(IntSupplier.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(IntFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToIntFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(ToIntFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongConsumer.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(LongConsumer.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongSupplier.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(LongSupplier.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(LongFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToLongFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(ToLongFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleConsumer.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(DoubleConsumer.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleSupplier.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(DoubleSupplier.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(DoubleFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToDoubleFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(ToDoubleFunction.class);
}


@Test
public void testPrimitiveFunctionOutputTypes() {
	Type type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntConsumer.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(IntConsumer.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntSupplier.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(IntSupplier.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(IntFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToIntFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(ToIntFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongConsumer.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(LongConsumer.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongSupplier.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(LongSupplier.class);


	type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(LongFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToLongFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(ToLongFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleConsumer.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(DoubleConsumer.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleSupplier.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(DoubleSupplier.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(DoubleFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToDoubleFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(ToDoubleFunction.class);
}

`

@olegz
Copy link
Contributor

olegz commented Oct 30, 2024

Please include the test cases and run a full build.

 function Unit Test Add
 Resolves #1098
@JunggiKim
Copy link
Author

When I added the test and ran the build, there was no problem! I'm done committing
Sorry for not including the unit test code at first.

@olegz
Copy link
Contributor

olegz commented Oct 31, 2024

Resolves 9282266

@olegz olegz closed this Oct 31, 2024
@olegz olegz added this to the 4.2 milestone Oct 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support primitive function interfaces
4 participants