@@ -663,18 +663,23 @@ class ReplVarsTest : AbstractSingleReplTest() {
663663 """
664664 val x = 124
665665 private var f = "abcd"
666- """ .trimIndent()
666+ """ .trimIndent(),
667+ jupyterId = 1
667668 )
668669 val state = repl.notebook.cellVariables
669670 assertTrue(state.isNotEmpty())
671+
672+ // f is not accessible from here
670673 eval(
671674 """
672675 private var z = 1
673676 z += x
674- """ .trimIndent()
677+ """ .trimIndent(),
678+ jupyterId = 1
675679 )
676680 assertTrue(state.isNotEmpty())
677681
682+ // TODO discuss if we really want this
678683 val setOfCell = setOf (" z" , " f" , " x" )
679684 assertTrue(state.containsValue(setOfCell))
680685 }
@@ -827,6 +832,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
827832
828833 val serializer = repl.variablesSerializer
829834 val newData = serializer.doIncrementalSerialization(0 , " data" , actualContainer)
835+ val a = 1
830836 }
831837
832838 @Test
@@ -910,13 +916,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
910916 val serializer = repl.variablesSerializer
911917
912918 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
920920 assertEquals(4 , receivedDescriptor.size)
921921
922922 var values = 1
@@ -964,13 +964,61 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
964964 assertEquals(3 , newDescriptor[" data" ]!! .fieldDescriptor.size)
965965 val ansSet = mutableSetOf (" a" , " b" , " c" )
966966 newDescriptor[" data" ]!! .fieldDescriptor.forEach { (_, state) ->
967- assertTrue (state!! .isContainer)
967+ assertFalse (state!! .isContainer)
968968 assertTrue(ansSet.contains(state.value))
969969 ansSet.remove(state.value)
970970 }
971971 assertTrue(ansSet.isEmpty())
972972 }
973973
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+
9741022 @Test
9751023 fun testSerializationMessage () {
9761024 val res = eval(
@@ -993,9 +1041,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
9931041
9941042 val innerList = data.entries.last().value
9951043 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
9991045
10001046 assertEquals(4 , receivedDescriptor.size)
10011047 var values = 1
@@ -1015,9 +1061,8 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
10151061
10161062 val innerList = data.entries.last().value
10171063 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+
10211066
10221067 assertEquals(4 , receivedDescriptor.size)
10231068 var values = 1
@@ -1068,5 +1113,26 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
10681113 )
10691114 assertTrue(state.isNotEmpty())
10701115 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)
10711137 }
10721138}
0 commit comments