/** * @param geo a geographic coordinate to assign to this input * @return a copy of this {@link ClarifaiInput} with its geographic coordinate set to the specified value */ @NotNull public final ClarifaiInput withGeo(@Nullable PointF geo) { return new AutoValue_ClarifaiInput(id(), createdAt(), inputValue(), metadata(), concepts(), geo, regions()); }
/** * @param metadata the metadata to attach to this input * @return a copy of this {@link ClarifaiInput} with its metadata set to the specified value */ @NotNull public final ClarifaiInput withMetadata(@NotNull JsonObject metadata) { InternalUtil.assertMetadataHasNoNulls(metadata); return new AutoValue_ClarifaiInput(id(), createdAt(), inputValue(), metadata, concepts(), geo(), regions()); }
@NotNull @Override public JsonElement serialize(@Nullable ClarifaiInput value, @NotNull Gson gson) { if (value == null) { return JsonNull.INSTANCE; } final JSONObjectBuilder builder = new JSONObjectBuilder() .add("id", value.id()); final JSONObjectBuilder data = new JSONObjectBuilder() .add("concepts", toJson(gson, value.concepts(), new TypeToken<List<Concept>>() {})) .add("metadata", value.metadata()); if (value.inputValue() instanceof ClarifaiVideo) { data.add("video", toJson(gson, (ClarifaiVideo) value.inputValue(), ClarifaiVideo.class)); } else { data.add("image", toJson(gson, (ClarifaiImage) value.inputValue(), ClarifaiImage.class)); } if (value.geo() != null) { data.add("geo", new JSONObjectBuilder() .add("geo_point", new JSONObjectBuilder() .add("latitude", value.geo().x()) .add("longitude", value.geo().y()))); } if (value.createdAt() != null) { builder.addIfNotNull("created_at", toJson(gson, value.createdAt(), Date.class)); } builder.add("data", data); return builder.build(); } };
@Test public void inputRequestShouldNotReturnConceptsWhenNoPermissions() { try { String inputId = addInputWithConcepts(client, FAMILY_IMAGE_URL, "conceptA", "conceptB"); GetInputRequest request = makeClient(EnvVar.CLARIFAI_API_KEY_INPUTS_GET_PATCH.value()) .getInputByID(inputId); ClarifaiResponse<ClarifaiInput> response = request.executeSync(); assertEquals(10000, response.getStatus().statusCode()); ClarifaiInput inputResponse = response.get(); assertEquals(0, inputResponse.concepts().size()); } finally { client.deleteAllInputs().executeSync(); } }
@Test public void inputRequestShouldReturnConceptsWhenWithPermissions() { try { String inputId = addInputWithConcepts(client, FAMILY_IMAGE_URL, "conceptA", "conceptB"); GetInputRequest request = makeClient(EnvVar.CLARIFAI_API_KEY_ALL_GET.value()) .getInputByID(inputId); ClarifaiResponse<ClarifaiInput> response = request.executeSync(); assertEquals(10000, response.getStatus().statusCode()); ClarifaiInput inputResponse = response.get(); assertNotEquals(0, inputResponse.concepts().size()); } finally { // best effort -- don't handle failure client.deleteAllInputs().executeSync(); } }
@Test public void inputsRequestShouldReturnConceptsWhenWithPermissions() { try { addInputWithConcepts(client, FAMILY_IMAGE_URL, "conceptA", "conceptB"); addInputWithConcepts(client, METRO_NORTH_IMAGE_URL, "conceptA"); GetInputsRequest request = makeClient(EnvVar.CLARIFAI_API_KEY_ALL_GET.value()).getInputs(); ClarifaiResponse<List<ClarifaiInput>> response = request.getPage(1).executeSync(); assertEquals(10000, response.getStatus().statusCode()); int maxConceptsSize = 0; for (ClarifaiInput inputResponse : response.get()) { maxConceptsSize = Math.max(inputResponse.concepts().size(), maxConceptsSize); } assertNotEquals(0, maxConceptsSize); } finally { client.deleteAllInputs().executeSync(); } }
@Test public void inputsRequestShouldReturnNotReturnConceptsWhenNoPermissions() { try { addInputWithConcepts(client, FAMILY_IMAGE_URL, "conceptA", "conceptB"); addInputWithConcepts(client, METRO_NORTH_IMAGE_URL, "conceptA"); GetInputsRequest request = makeClient(EnvVar.CLARIFAI_API_KEY_INPUTS_GET_PATCH.value()).getInputs(); ClarifaiResponse<List<ClarifaiInput>> response = request.getPage(1).executeSync(); assertEquals(10000, response.getStatus().statusCode()); int maxConceptsSize = 0; for (ClarifaiInput inputResponse : response.get()) { maxConceptsSize = Math.max(inputResponse.concepts().size(), maxConceptsSize); } assertEquals(0, maxConceptsSize); } finally { client.deleteAllInputs().executeSync(); } }
@Test public void patchInputShouldNotReturnConceptsWhenNoPermissions() { try { String inputId = addInputWithConcepts(client, FAMILY_IMAGE_URL, "concept0", "concept1"); PatchInputRequest request = makeClient(EnvVar.CLARIFAI_API_KEY_INPUTS_GET_PATCH.value()) .mergeConceptsForInput(inputId) .plus( Concept.forID("concept2"), Concept.forID("concept3") ); ClarifaiResponse<ClarifaiInput> response = request.executeSync(); assertEquals(0, response.get().concepts().size()); } finally { client.deleteAllInputs().executeSync(); } }
@Ignore("2017/07/12: temporarily disabled") @Test public void getModelInputsShouldReturnConceptsWhenWithPermissions() { try { String modelId = addModelWithInputsAndConcepts(client); GetModelInputsRequest request = makeClient(EnvVar.CLARIFAI_API_KEY_ALL_GET.value()) .getModelInputs(modelId); ClarifaiResponse<List<ClarifaiInput>> response = request.getPage(1).executeSync(); assertEquals(10000, response.getStatus().statusCode()); int maxConceptsSize = 0; for (ClarifaiInput inputResponse : response.get()) { maxConceptsSize = Math.max(inputResponse.concepts().size(), maxConceptsSize); } assertNotEquals(0, maxConceptsSize); } finally { client.deleteAllModels().executeSync(); client.deleteAllInputs().executeSync(); } }
@Ignore("2017/07/12: temporarily disabled") @Test public void getModelInputsShouldNotReturnConceptsWhenNoPermissions() { try { String modelId = addModelWithInputsAndConcepts(client); GetModelInputsRequest request = makeClient(EnvVar.CLARIFAI_API_KEY_MODELS_AND_INPUTS_GET.value()) .getModelInputs(modelId); ClarifaiResponse<List<ClarifaiInput>> response = request.getPage(1).executeSync(); assertEquals(10000, response.getStatus().statusCode()); int maxConceptsSize = 0; for (ClarifaiInput inputResponse : response.get()) { maxConceptsSize = Math.max(inputResponse.concepts().size(), maxConceptsSize); } assertEquals(0, maxConceptsSize); } finally { client.deleteAllModels().executeSync(); client.deleteAllInputs().executeSync(); } }
@Test public void patchInputShouldReturnConceptsWhenWithPermissions() { try { String inputId = addInputWithConcepts(client, METRO_NORTH_IMAGE_URL, "concept0", "concept1"); assertNotNull(inputId); PatchInputRequest request = makeClient(EnvVar.CLARIFAI_API_KEY_INPUTS_GET_PATCH_AND_CONCEPTS_GET.value()) .mergeConceptsForInput(inputId) .plus( Concept.forID("concept2"), Concept.forID("concept3") ); ClarifaiResponse<ClarifaiInput> response = request.executeSync(); assertNotEquals(0, response.get().concepts().size()); } finally { client.deleteAllInputs().executeSync(); } }