@@ -690,18 +690,23 @@ class ReplVarsTest : AbstractSingleReplTest() {
690
690
"""
691
691
val x = 124
692
692
private var f = "abcd"
693
- """ .trimIndent()
693
+ """ .trimIndent(),
694
+ jupyterId = 1
694
695
)
695
696
val state = repl.notebook.cellVariables
696
697
assertTrue(state.isNotEmpty())
698
+
699
+ // f is not accessible from here
697
700
eval(
698
701
"""
699
702
private var z = 1
700
703
z += x
701
- """ .trimIndent()
704
+ """ .trimIndent(),
705
+ jupyterId = 1
702
706
)
703
707
assertTrue(state.isNotEmpty())
704
708
709
+ // TODO discuss if we really want this
705
710
val setOfCell = setOf (" z" , " f" , " x" )
706
711
assertTrue(state.containsValue(setOfCell))
707
712
}
@@ -854,6 +859,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
854
859
855
860
val serializer = repl.variablesSerializer
856
861
val newData = serializer.doIncrementalSerialization(0 , " data" , actualContainer)
862
+ val a = 1
857
863
}
858
864
859
865
@Test
@@ -937,13 +943,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
937
943
val serializer = repl.variablesSerializer
938
944
939
945
val newData = serializer.doIncrementalSerialization(0 , listData.fieldDescriptor.entries.first().key, actualContainer)
940
- var receivedDescriptor = newData.fieldDescriptor
941
- assertEquals(2 , receivedDescriptor.size)
942
- assertTrue(receivedDescriptor.containsKey(" size" ))
943
-
944
- val innerList = receivedDescriptor.entries.last().value!!
945
- assertTrue(innerList.isContainer)
946
- receivedDescriptor = innerList.fieldDescriptor
946
+ val receivedDescriptor = newData.fieldDescriptor
947
947
assertEquals(4 , receivedDescriptor.size)
948
948
949
949
var values = 1
@@ -991,13 +991,61 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
991
991
assertEquals(3 , newDescriptor[" data" ]!! .fieldDescriptor.size)
992
992
val ansSet = mutableSetOf (" a" , " b" , " c" )
993
993
newDescriptor[" data" ]!! .fieldDescriptor.forEach { (_, state) ->
994
- assertTrue (state!! .isContainer)
994
+ assertFalse (state!! .isContainer)
995
995
assertTrue(ansSet.contains(state.value))
996
996
ansSet.remove(state.value)
997
997
}
998
998
assertTrue(ansSet.isEmpty())
999
999
}
1000
1000
1001
+
1002
+ @Test
1003
+ fun testSetContainer () {
1004
+ var res = eval(
1005
+ """
1006
+ val x = setOf("a", "b", "cc", "c")
1007
+ """ .trimIndent(),
1008
+ jupyterId = 1
1009
+ )
1010
+ var varsData = res.metadata.evaluatedVariablesState
1011
+ assertEquals(1 , varsData.size)
1012
+ assertTrue(varsData.containsKey(" x" ))
1013
+
1014
+ var setData = varsData[" x" ]!!
1015
+ assertTrue(setData.isContainer)
1016
+ assertEquals(2 , setData.fieldDescriptor.size)
1017
+ var setDescriptors = setData.fieldDescriptor
1018
+ assertEquals(" 4" , setDescriptors[" size" ]!! .value)
1019
+ assertTrue(setDescriptors[" data" ]!! .isContainer)
1020
+ assertEquals(4 , setDescriptors[" data" ]!! .fieldDescriptor.size)
1021
+ assertEquals(" a" , setDescriptors[" data" ]!! .fieldDescriptor[" a" ]!! .value)
1022
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" b" ))
1023
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" cc" ))
1024
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" c" ))
1025
+
1026
+ res = eval(
1027
+ """
1028
+ val c = mutableSetOf("a", "b", "cc", "c")
1029
+ """ .trimIndent(),
1030
+ jupyterId = 2
1031
+ )
1032
+ varsData = res.metadata.evaluatedVariablesState
1033
+ assertEquals(2 , varsData.size)
1034
+ assertTrue(varsData.containsKey(" c" ))
1035
+
1036
+ setData = varsData[" c" ]!!
1037
+ assertTrue(setData.isContainer)
1038
+ assertEquals(2 , setData.fieldDescriptor.size)
1039
+ setDescriptors = setData.fieldDescriptor
1040
+ assertEquals(" 4" , setDescriptors[" size" ]!! .value)
1041
+ assertTrue(setDescriptors[" data" ]!! .isContainer)
1042
+ assertEquals(4 , setDescriptors[" data" ]!! .fieldDescriptor.size)
1043
+ assertEquals(" a" , setDescriptors[" data" ]!! .fieldDescriptor[" a" ]!! .value)
1044
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" b" ))
1045
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" cc" ))
1046
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" c" ))
1047
+ }
1048
+
1001
1049
@Test
1002
1050
fun testSerializationMessage () {
1003
1051
val res = eval(
@@ -1020,9 +1068,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
1020
1068
1021
1069
val innerList = data.entries.last().value
1022
1070
assertTrue(innerList.isContainer)
1023
- var receivedDescriptor = innerList.fieldDescriptor
1024
- assertEquals(2 , receivedDescriptor.size)
1025
- receivedDescriptor = receivedDescriptor.entries.last().value!! .fieldDescriptor
1071
+ val receivedDescriptor = innerList.fieldDescriptor
1026
1072
1027
1073
assertEquals(4 , receivedDescriptor.size)
1028
1074
var values = 1
@@ -1042,9 +1088,8 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
1042
1088
1043
1089
val innerList = data.entries.last().value
1044
1090
assertTrue(innerList.isContainer)
1045
- var receivedDescriptor = innerList.fieldDescriptor
1046
- assertEquals(2 , receivedDescriptor.size)
1047
- receivedDescriptor = receivedDescriptor.entries.last().value!! .fieldDescriptor
1091
+ val receivedDescriptor = innerList.fieldDescriptor
1092
+
1048
1093
1049
1094
assertEquals(4 , receivedDescriptor.size)
1050
1095
var values = 1
@@ -1095,5 +1140,26 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
1095
1140
)
1096
1141
assertTrue(state.isNotEmpty())
1097
1142
assertEquals(state, setOfPrevCell)
1143
+
1144
+
1145
+ eval(
1146
+ """
1147
+ private val x = 341
1148
+ protected val z = "abcd"
1149
+ """ .trimIndent(),
1150
+ jupyterId = 1
1151
+ )
1152
+ assertTrue(state.isEmpty())
1153
+
1154
+ eval(
1155
+ """
1156
+ private val x = "abcd"
1157
+ var f = 47
1158
+ internal val z = 47
1159
+ """ .trimIndent(),
1160
+ jupyterId = 1
1161
+ )
1162
+ assertTrue(state.isNotEmpty())
1163
+ assertEquals(setOfPrevCell, state)
1098
1164
}
1099
1165
}
0 commit comments