@@ -663,18 +663,23 @@ class ReplVarsTest : AbstractSingleReplTest() {
663
663
"""
664
664
val x = 124
665
665
private var f = "abcd"
666
- """ .trimIndent()
666
+ """ .trimIndent(),
667
+ jupyterId = 1
667
668
)
668
669
val state = repl.notebook.cellVariables
669
670
assertTrue(state.isNotEmpty())
671
+
672
+ // f is not accessible from here
670
673
eval(
671
674
"""
672
675
private var z = 1
673
676
z += x
674
- """ .trimIndent()
677
+ """ .trimIndent(),
678
+ jupyterId = 1
675
679
)
676
680
assertTrue(state.isNotEmpty())
677
681
682
+ // TODO discuss if we really want this
678
683
val setOfCell = setOf (" z" , " f" , " x" )
679
684
assertTrue(state.containsValue(setOfCell))
680
685
}
@@ -827,6 +832,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
827
832
828
833
val serializer = repl.variablesSerializer
829
834
val newData = serializer.doIncrementalSerialization(0 , " data" , actualContainer)
835
+ val a = 1
830
836
}
831
837
832
838
@Test
@@ -910,13 +916,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
910
916
val serializer = repl.variablesSerializer
911
917
912
918
val newData = serializer.doIncrementalSerialization(0 , listData.fieldDescriptor.entries.first().key, actualContainer)
913
- var receivedDescriptor = newData.fieldDescriptor
914
- assertEquals(2 , receivedDescriptor.size)
915
- assertTrue(receivedDescriptor.containsKey(" size" ))
916
-
917
- val innerList = receivedDescriptor.entries.last().value!!
918
- assertTrue(innerList.isContainer)
919
- receivedDescriptor = innerList.fieldDescriptor
919
+ val receivedDescriptor = newData.fieldDescriptor
920
920
assertEquals(4 , receivedDescriptor.size)
921
921
922
922
var values = 1
@@ -964,13 +964,61 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
964
964
assertEquals(3 , newDescriptor[" data" ]!! .fieldDescriptor.size)
965
965
val ansSet = mutableSetOf (" a" , " b" , " c" )
966
966
newDescriptor[" data" ]!! .fieldDescriptor.forEach { (_, state) ->
967
- assertTrue (state!! .isContainer)
967
+ assertFalse (state!! .isContainer)
968
968
assertTrue(ansSet.contains(state.value))
969
969
ansSet.remove(state.value)
970
970
}
971
971
assertTrue(ansSet.isEmpty())
972
972
}
973
973
974
+
975
+ @Test
976
+ fun testSetContainer () {
977
+ var res = eval(
978
+ """
979
+ val x = setOf("a", "b", "cc", "c")
980
+ """ .trimIndent(),
981
+ jupyterId = 1
982
+ )
983
+ var varsData = res.metadata.evaluatedVariablesState
984
+ assertEquals(1 , varsData.size)
985
+ assertTrue(varsData.containsKey(" x" ))
986
+
987
+ var setData = varsData[" x" ]!!
988
+ assertTrue(setData.isContainer)
989
+ assertEquals(2 , setData.fieldDescriptor.size)
990
+ var setDescriptors = setData.fieldDescriptor
991
+ assertEquals(" 4" , setDescriptors[" size" ]!! .value)
992
+ assertTrue(setDescriptors[" data" ]!! .isContainer)
993
+ assertEquals(4 , setDescriptors[" data" ]!! .fieldDescriptor.size)
994
+ assertEquals(" a" , setDescriptors[" data" ]!! .fieldDescriptor[" a" ]!! .value)
995
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" b" ))
996
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" cc" ))
997
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" c" ))
998
+
999
+ res = eval(
1000
+ """
1001
+ val c = mutableSetOf("a", "b", "cc", "c")
1002
+ """ .trimIndent(),
1003
+ jupyterId = 2
1004
+ )
1005
+ varsData = res.metadata.evaluatedVariablesState
1006
+ assertEquals(2 , varsData.size)
1007
+ assertTrue(varsData.containsKey(" c" ))
1008
+
1009
+ setData = varsData[" c" ]!!
1010
+ assertTrue(setData.isContainer)
1011
+ assertEquals(2 , setData.fieldDescriptor.size)
1012
+ setDescriptors = setData.fieldDescriptor
1013
+ assertEquals(" 4" , setDescriptors[" size" ]!! .value)
1014
+ assertTrue(setDescriptors[" data" ]!! .isContainer)
1015
+ assertEquals(4 , setDescriptors[" data" ]!! .fieldDescriptor.size)
1016
+ assertEquals(" a" , setDescriptors[" data" ]!! .fieldDescriptor[" a" ]!! .value)
1017
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" b" ))
1018
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" cc" ))
1019
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" c" ))
1020
+ }
1021
+
974
1022
@Test
975
1023
fun testSerializationMessage () {
976
1024
val res = eval(
@@ -993,9 +1041,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
993
1041
994
1042
val innerList = data.entries.last().value
995
1043
assertTrue(innerList.isContainer)
996
- var receivedDescriptor = innerList.fieldDescriptor
997
- assertEquals(2 , receivedDescriptor.size)
998
- receivedDescriptor = receivedDescriptor.entries.last().value!! .fieldDescriptor
1044
+ val receivedDescriptor = innerList.fieldDescriptor
999
1045
1000
1046
assertEquals(4 , receivedDescriptor.size)
1001
1047
var values = 1
@@ -1015,9 +1061,8 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
1015
1061
1016
1062
val innerList = data.entries.last().value
1017
1063
assertTrue(innerList.isContainer)
1018
- var receivedDescriptor = innerList.fieldDescriptor
1019
- assertEquals(2 , receivedDescriptor.size)
1020
- receivedDescriptor = receivedDescriptor.entries.last().value!! .fieldDescriptor
1064
+ val receivedDescriptor = innerList.fieldDescriptor
1065
+
1021
1066
1022
1067
assertEquals(4 , receivedDescriptor.size)
1023
1068
var values = 1
@@ -1068,5 +1113,26 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
1068
1113
)
1069
1114
assertTrue(state.isNotEmpty())
1070
1115
assertEquals(state, setOfPrevCell)
1116
+
1117
+
1118
+ eval(
1119
+ """
1120
+ private val x = 341
1121
+ protected val z = "abcd"
1122
+ """ .trimIndent(),
1123
+ jupyterId = 1
1124
+ )
1125
+ assertTrue(state.isEmpty())
1126
+
1127
+ eval(
1128
+ """
1129
+ private val x = "abcd"
1130
+ var f = 47
1131
+ internal val z = 47
1132
+ """ .trimIndent(),
1133
+ jupyterId = 1
1134
+ )
1135
+ assertTrue(state.isNotEmpty())
1136
+ assertEquals(setOfPrevCell, state)
1071
1137
}
1072
1138
}
0 commit comments