### Question:
NativeArtifactImpl implements NativeArtifact, Serializable { @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } NativeArtifactImpl that = (NativeArtifactImpl) o; return Objects.equals(name, that.name) && Objects.equals(toolChain, that.toolChain) && Objects.equals(groupName, that.groupName) && Objects.equals(assembleTaskName, that.assembleTaskName) && Objects.equals(sourceFiles, that.sourceFiles) && Objects.equals(exportedHeaders, that.exportedHeaders) && Objects.equals(outputFile, that.outputFile) && Objects.equals(runtimeFiles, that.runtimeFiles) && Objects.equals(abi, that.abi) && Objects.equals(targetName, that.targetName); } NativeArtifactImpl(
            @NonNull String name,
            @NonNull String toolChain,
            @NonNull String groupName,
            @NonNull String assembleTaskName,
            @NonNull Collection<NativeFile> sourceFiles,
            @NonNull Collection<File> exportedHeaders,
            @NonNull File outputFile,
            @NonNull Collection<File> runtimeFiles,
            @NonNull String abi,
            @NonNull String targetName); @Override @NonNull String getName(); @Override @NonNull String getToolChain(); @Override @NonNull String getGroupName(); @Override @NonNull String getAssembleTaskName(); @Override @NonNull Collection<NativeFile> getSourceFiles(); @Override @NonNull Collection<File> getExportedHeaders(); @Override @NonNull File getOutputFile(); @NonNull @Override Collection<File> getRuntimeFiles(); @Override @NonNull String getAbi(); @Override @NonNull String getTargetName(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void equals() throws Exception { EqualsVerifier.forClass(NativeArtifactImpl.class).verify(); }