Skip to content

Commit 51c349a

Browse files
committed
[CM-1579]: Implemented test case to check synchronous implementation of the Experiment.logText() methods via ApiExperiment.
1 parent 14d39ca commit 51c349a

File tree

2 files changed

+70
-2
lines changed

2 files changed

+70
-2
lines changed

comet-java-client/src/test/java/ml/comet/experiment/impl/ApiExperimentTest.java

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,40 @@
22

33
import ml.comet.experiment.ApiExperiment;
44
import ml.comet.experiment.OnlineExperiment;
5+
import ml.comet.experiment.asset.LoggedExperimentAsset;
6+
import ml.comet.experiment.context.ExperimentContext;
57
import ml.comet.experiment.exception.CometGeneralException;
8+
import ml.comet.experiment.impl.asset.LoggedExperimentAssetImpl;
9+
import org.apache.commons.lang3.StringUtils;
610
import org.junit.jupiter.api.DisplayName;
711
import org.junit.jupiter.api.Tag;
812
import org.junit.jupiter.api.Test;
913

14+
import java.util.HashMap;
15+
import java.util.List;
16+
import java.util.Map;
17+
1018
import static ml.comet.experiment.impl.ExperimentTestFactory.API_KEY;
1119
import static ml.comet.experiment.impl.ExperimentTestFactory.PROJECT_NAME;
1220
import static ml.comet.experiment.impl.ExperimentTestFactory.WORKSPACE_NAME;
21+
import static ml.comet.experiment.impl.ExperimentTestFactory.createApiExperiment;
1322
import static ml.comet.experiment.impl.ExperimentTestFactory.createOnlineExperiment;
23+
import static ml.comet.experiment.impl.asset.AssetType.TEXT_SAMPLE;
1424
import static org.junit.jupiter.api.Assertions.assertEquals;
1525
import static org.junit.jupiter.api.Assertions.assertThrows;
26+
import static org.junit.jupiter.api.Assertions.assertTrue;
1627

1728
/**
1829
* The integration tests to test {@link ApiExperiment} implementation by sending/retrieving data from the backend.
1930
*/
2031
@DisplayName("ApiExperimentTest INTEGRATION")
2132
@Tag("integration")
2233
public class ApiExperimentTest {
34+
static Map<String, Object> SOME_METADATA = new HashMap<String, Object>() {{
35+
put("someString", "string");
36+
put("someInt", 10);
37+
}};
38+
static String SOME_TEXT = "this is some text to be used";
2339

2440
@Test
2541
public void testApiExperimentInitializedWithInvalidValues() {
@@ -44,4 +60,46 @@ public void testApiExperimentInitialized() throws Exception {
4460
assertEquals(PROJECT_NAME, apiExperiment.getProjectName());
4561
}
4662
}
63+
64+
@Test
65+
public void testLogTextFull() throws Exception {
66+
try (ApiExperiment apiExperiment = createApiExperiment()) {
67+
ExperimentContext ctx = ExperimentContext.builder()
68+
.withStep(100)
69+
.withContext("train")
70+
.build();
71+
72+
apiExperiment.logText(SOME_TEXT, ctx, SOME_METADATA);
73+
74+
// check that TEXT asset was saved as expected
75+
List<LoggedExperimentAsset> assets = apiExperiment.getAssetList(TEXT_SAMPLE.type());
76+
assertEquals(1, assets.size(), "wrong number of assets returned");
77+
LoggedExperimentAsset asset = assets.get(0);
78+
assertEquals(TEXT_SAMPLE.type(), asset.getType(), "wrong asset type");
79+
ExperimentContext assetContext = ((LoggedExperimentAssetImpl) asset).getContext();
80+
assertEquals(ctx.getStep(), assetContext.getStep(), "wrong asset's context step");
81+
assertEquals(ctx.getContext(), assetContext.getContext(), "wrong asset's context ID");
82+
assertEquals(SOME_METADATA, asset.getMetadata(), "wrong metadata:");
83+
assertEquals(SOME_TEXT.length(), asset.getSize().orElse(0L), "wrong asset size");
84+
}
85+
}
86+
87+
@Test
88+
public void testLogTextShort() throws Exception {
89+
try (ApiExperiment apiExperiment = createApiExperiment()) {
90+
apiExperiment.logText(SOME_TEXT);
91+
92+
// check that TEXT asset was saved as expected
93+
List<LoggedExperimentAsset> assets = apiExperiment.getAssetList(TEXT_SAMPLE.type());
94+
assertEquals(1, assets.size(), "wrong number of assets returned");
95+
96+
LoggedExperimentAsset asset = assets.get(0);
97+
assertEquals(TEXT_SAMPLE.type(), asset.getType(), "wrong asset type");
98+
assertEquals(SOME_TEXT.length(), asset.getSize().orElse(0L), "wrong asset size");
99+
assertEquals(0, asset.getMetadata().size(), "no metadata expected");
100+
ExperimentContext assetContext = ((LoggedExperimentAssetImpl) asset).getContext();
101+
assertEquals(0, assetContext.getStep(), "no context step expected");
102+
assertTrue(StringUtils.isBlank(assetContext.getContext()), "no context ID expected");
103+
}
104+
}
47105
}

comet-java-client/src/test/java/ml/comet/experiment/impl/ExperimentTestFactory.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package ml.comet.experiment.impl;
22

3+
import ml.comet.experiment.ApiExperiment;
4+
import ml.comet.experiment.ExperimentBuilder;
35
import ml.comet.experiment.OnlineExperiment;
46

57
import static ml.comet.experiment.impl.config.CometConfig.COMET_API_KEY;
@@ -21,10 +23,18 @@ public class ExperimentTestFactory {
2123
}
2224

2325
static OnlineExperiment createOnlineExperiment() {
24-
return OnlineExperimentImpl.builder()
25-
.withApiKey(API_KEY)
26+
return ExperimentBuilder.OnlineExperiment()
2627
.withWorkspace(WORKSPACE_NAME)
2728
.withProjectName(PROJECT_NAME)
29+
.withApiKey(API_KEY)
30+
.build();
31+
}
32+
33+
static ApiExperiment createApiExperiment() {
34+
return ExperimentBuilder.ApiExperiment()
35+
.withProjectName(PROJECT_NAME)
36+
.withWorkspace(WORKSPACE_NAME)
37+
.withApiKey(API_KEY)
2838
.build();
2939
}
3040
}

0 commit comments

Comments
 (0)