### Question:
AndroidArtifactOutputImpl implements AndroidArtifactOutput, Serializable { @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } AndroidArtifactOutputImpl that = (AndroidArtifactOutputImpl) o; return Objects.equals(mainOutput, that.mainOutput) && Objects.equals(manifestOutput, that.manifestOutput) && Objects.equals(splitApksOutputs, that.splitApksOutputs); } AndroidArtifactOutputImpl(
            EarlySyncBuildOutput mainOutput, EarlySyncBuildOutput manifestOutput);  AndroidArtifactOutputImpl(
            EarlySyncBuildOutput mainApk,
            EarlySyncBuildOutput manifestOutput,
            List<EarlySyncBuildOutput> splitApksOutputs); @NonNull @Override File getOutputFile(); @NonNull @Override OutputFile getMainOutputFile(); @NonNull @Override Collection<OutputFile> getOutputs(); @NonNull @Override String getAssembleTaskName(); @NonNull @Override String getOutputType(); @NonNull @Override Collection<String> getFilterTypes(); @Nullable String getFilter(String filterType); @NonNull @Override Collection<FilterData> getFilters(); @NonNull @Override File getGeneratedManifest(); @Override int getVersionCode(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void equals() throws Exception { EqualsVerifier.forClass(AndroidArtifactOutputImpl.class).verify(); }