@@ -690,18 +690,23 @@ class ReplVarsTest : AbstractSingleReplTest() {
690690 """
691691 val x = 124
692692 private var f = "abcd"
693- """ .trimIndent()
693+ """ .trimIndent(),
694+ jupyterId = 1
694695 )
695696 val state = repl.notebook.cellVariables
696697 assertTrue(state.isNotEmpty())
698+
699+ // f is not accessible from here
697700 eval(
698701 """
699702 private var z = 1
700703 z += x
701- """ .trimIndent()
704+ """ .trimIndent(),
705+ jupyterId = 1
702706 )
703707 assertTrue(state.isNotEmpty())
704708
709+ // TODO discuss if we really want this
705710 val setOfCell = setOf (" z" , " f" , " x" )
706711 assertTrue(state.containsValue(setOfCell))
707712 }
@@ -854,6 +859,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
854859
855860 val serializer = repl.variablesSerializer
856861 val newData = serializer.doIncrementalSerialization(0 , " data" , actualContainer)
862+ val a = 1
857863 }
858864
859865 @Test
@@ -937,13 +943,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
937943 val serializer = repl.variablesSerializer
938944
939945 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
947947 assertEquals(4 , receivedDescriptor.size)
948948
949949 var values = 1
@@ -991,13 +991,61 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
991991 assertEquals(3 , newDescriptor[" data" ]!! .fieldDescriptor.size)
992992 val ansSet = mutableSetOf (" a" , " b" , " c" )
993993 newDescriptor[" data" ]!! .fieldDescriptor.forEach { (_, state) ->
994- assertTrue (state!! .isContainer)
994+ assertFalse (state!! .isContainer)
995995 assertTrue(ansSet.contains(state.value))
996996 ansSet.remove(state.value)
997997 }
998998 assertTrue(ansSet.isEmpty())
999999 }
10001000
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+
10011049 @Test
10021050 fun testSerializationMessage () {
10031051 val res = eval(
@@ -1020,9 +1068,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
10201068
10211069 val innerList = data.entries.last().value
10221070 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
10261072
10271073 assertEquals(4 , receivedDescriptor.size)
10281074 var values = 1
@@ -1042,9 +1088,8 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
10421088
10431089 val innerList = data.entries.last().value
10441090 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+
10481093
10491094 assertEquals(4 , receivedDescriptor.size)
10501095 var values = 1
@@ -1095,5 +1140,26 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
10951140 )
10961141 assertTrue(state.isNotEmpty())
10971142 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)
10981164 }
10991165}
0 commit comments