Skip to content

Commit 6de2d67

Browse files
committed
[CM-1580]: Implemented test case to check synchronous implementation.
1 parent 879428f commit 6de2d67

File tree

3 files changed

+65
-8
lines changed

3 files changed

+65
-8
lines changed

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

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import ml.comet.experiment.context.ExperimentContext;
77
import ml.comet.experiment.exception.CometGeneralException;
88
import ml.comet.experiment.impl.asset.LoggedExperimentAssetImpl;
9+
import ml.comet.experiment.model.Curve;
910
import org.apache.commons.lang3.StringUtils;
1011
import org.junit.jupiter.api.DisplayName;
1112
import org.junit.jupiter.api.Tag;
@@ -20,6 +21,9 @@
2021
import static ml.comet.experiment.impl.ExperimentTestFactory.WORKSPACE_NAME;
2122
import static ml.comet.experiment.impl.ExperimentTestFactory.createApiExperiment;
2223
import static ml.comet.experiment.impl.ExperimentTestFactory.createOnlineExperiment;
24+
import static ml.comet.experiment.impl.TestUtils.SOME_FULL_CONTEXT;
25+
import static ml.comet.experiment.impl.TestUtils.createCurve;
26+
import static ml.comet.experiment.impl.asset.AssetType.CURVE;
2327
import static ml.comet.experiment.impl.asset.AssetType.TEXT_SAMPLE;
2428
import static org.junit.jupiter.api.Assertions.assertEquals;
2529
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -102,4 +106,52 @@ public void testLogTextShort() throws Exception {
102106
assertTrue(StringUtils.isBlank(assetContext.getContext()), "no context ID expected");
103107
}
104108
}
109+
110+
@Test
111+
public void testLogCurve() throws Exception {
112+
try (ApiExperiment apiExperiment = createApiExperiment()) {
113+
String fileName = "someCurve";
114+
Curve curve = createCurve(fileName, 10);
115+
apiExperiment.logCurve(curve, true, SOME_FULL_CONTEXT);
116+
117+
// check that CURVE asset was saved as expected
118+
List<LoggedExperimentAsset> assets = apiExperiment.getAssetList(CURVE.type());
119+
assertEquals(1, assets.size(), "wrong number of assets returned");
120+
121+
LoggedExperimentAsset asset = assets.get(0);
122+
assertEquals(CURVE.type(), asset.getType(), "wrong asset type");
123+
assertEquals(0, asset.getMetadata().size(), "no metadata expected");
124+
ExperimentContext assetContext = ((LoggedExperimentAssetImpl) asset).getContext();
125+
assertEquals(SOME_FULL_CONTEXT.getStep(), assetContext.getStep(), "wrong context step");
126+
assertEquals(SOME_FULL_CONTEXT.getContext(), assetContext.getContext(), "wrong context ID");
127+
}
128+
}
129+
130+
@Test
131+
public void testLogCurveOverwrite() throws Exception {
132+
try (ApiExperiment apiExperiment = createApiExperiment()) {
133+
String fileName = "someCurve";
134+
int pointsCount = 10;
135+
Curve curve = createCurve(fileName, pointsCount);
136+
apiExperiment.logCurve(curve, false, SOME_FULL_CONTEXT);
137+
138+
// check that CURVE asset was saved as expected
139+
List<LoggedExperimentAsset> assets = apiExperiment.getAssetList(CURVE.type());
140+
assertEquals(1, assets.size(), "wrong number of assets returned");
141+
142+
long size = assets.get(0).getSize().orElse((long) -1);
143+
assertTrue(size > 0, "wrong asset size");
144+
145+
// overwrite created curve with bigger ones
146+
//
147+
curve = createCurve(fileName, pointsCount * 2);
148+
apiExperiment.logCurve(curve, true, SOME_FULL_CONTEXT);
149+
150+
assets = apiExperiment.getAssetList(CURVE.type());
151+
assertEquals(1, assets.size(), "wrong number of assets returned");
152+
153+
long newSize = assets.get(0).getSize().orElse((long) -1);
154+
assertTrue(newSize > size);
155+
}
156+
}
105157
}

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package ml.comet.experiment.impl;
22

33
import ml.comet.experiment.context.ExperimentContext;
4+
import ml.comet.experiment.model.Curve;
5+
import ml.comet.experiment.model.DataPoint;
46
import org.awaitility.Awaitility;
57

68
import java.io.File;
@@ -67,4 +69,12 @@ public static void awaitForCondition(BooleanSupplier booleanSupplier, String con
6769
.pollInterval(300L, MILLISECONDS)
6870
.until(booleanSupplier::getAsBoolean);
6971
}
72+
73+
public static Curve createCurve(String name, int pointsCount) {
74+
DataPoint[] dataPoints = new DataPoint[pointsCount];
75+
for (int i = 0; i < pointsCount; i++) {
76+
dataPoints[i] = DataPoint.of(i, i * 10);
77+
}
78+
return new Curve(dataPoints, name);
79+
}
7080
}

comet-java-client/src/test/java/ml/comet/experiment/impl/utils/AssetUtilsTest.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import ml.comet.experiment.impl.asset.AssetImpl;
77
import ml.comet.experiment.impl.asset.AssetType;
88
import ml.comet.experiment.model.Curve;
9-
import ml.comet.experiment.model.DataPoint;
109
import org.apache.commons.io.FilenameUtils;
1110
import org.apache.commons.io.file.PathUtils;
1211
import org.apache.commons.lang3.StringUtils;
@@ -35,6 +34,7 @@
3534

3635
import static java.util.Optional.empty;
3736
import static java.util.Optional.ofNullable;
37+
import static ml.comet.experiment.impl.TestUtils.createCurve;
3838
import static ml.comet.experiment.impl.asset.AssetType.ASSET;
3939
import static ml.comet.experiment.impl.asset.AssetType.CURVE;
4040
import static ml.comet.experiment.impl.asset.AssetType.NOTEBOOK;
@@ -223,14 +223,9 @@ public void testCreateAssetFromData() {
223223
@Test
224224
public void testCreateAssetFromCurve() {
225225
String json = "{\"name\":\"someCurve\",\"x\":[0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0],\"y\":[0.0,10.0,20.0,30.0,40.0,50.0,60.0,70.0,80.0,90.0]}";
226-
byte []data = json.getBytes(StandardCharsets.UTF_8);
227-
int count = 10;
228-
DataPoint[] dataPoints = new DataPoint[count];
229-
for (int i = 0; i < count; i++) {
230-
dataPoints[i] = DataPoint.of(i, i * 10);
231-
}
226+
byte[] data = json.getBytes(StandardCharsets.UTF_8);
232227
String fileName = "someCurve";
233-
Curve curve = new Curve(dataPoints, fileName);
228+
Curve curve = createCurve(fileName, 10);
234229

235230
AssetImpl asset = createAssetFromCurve(curve, true);
236231
assertNotNull(asset);

0 commit comments

Comments
 (0)