@@ -639,18 +639,23 @@ class ReplVarsTest : AbstractSingleReplTest() {
639639 """
640640 val x = 124
641641 private var f = "abcd"
642- """ .trimIndent()
642+ """ .trimIndent(),
643+ jupyterId = 1
643644 )
644645 val state = repl.notebook.cellVariables
645646 assertTrue(state.isNotEmpty())
647+
648+ // f is not accessible from here
646649 eval(
647650 """
648651 private var z = 1
649652 z += x
650- """ .trimIndent()
653+ """ .trimIndent(),
654+ jupyterId = 1
651655 )
652656 assertTrue(state.isNotEmpty())
653657
658+ // TODO discuss if we really want this
654659 val setOfCell = setOf (" z" , " f" , " x" )
655660 assertTrue(state.containsValue(setOfCell))
656661 }
@@ -817,6 +822,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
817822
818823 val serializer = repl.variablesSerializer
819824 val newData = serializer.doIncrementalSerialization(0 , " data" , actualContainer)
825+ val a = 1
820826 }
821827
822828 @Test
@@ -900,13 +906,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
900906 val serializer = repl.variablesSerializer
901907
902908 val newData = serializer.doIncrementalSerialization(0 , listData.fieldDescriptor.entries.first().key, actualContainer)
903- var receivedDescriptor = newData.fieldDescriptor
904- assertEquals(2 , receivedDescriptor.size)
905- assertTrue(receivedDescriptor.containsKey(" size" ))
906-
907- val innerList = receivedDescriptor.entries.last().value!!
908- assertTrue(innerList.isContainer)
909- receivedDescriptor = innerList.fieldDescriptor
909+ val receivedDescriptor = newData.fieldDescriptor
910910 assertEquals(4 , receivedDescriptor.size)
911911
912912 var values = 1
@@ -954,13 +954,61 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
954954 assertEquals(3 , newDescriptor[" data" ]!! .fieldDescriptor.size)
955955 val ansSet = mutableSetOf (" a" , " b" , " c" )
956956 newDescriptor[" data" ]!! .fieldDescriptor.forEach { (_, state) ->
957- assertTrue (state!! .isContainer)
957+ assertFalse (state!! .isContainer)
958958 assertTrue(ansSet.contains(state.value))
959959 ansSet.remove(state.value)
960960 }
961961 assertTrue(ansSet.isEmpty())
962962 }
963963
964+
965+ @Test
966+ fun testSetContainer () {
967+ var res = eval(
968+ """
969+ val x = setOf("a", "b", "cc", "c")
970+ """ .trimIndent(),
971+ jupyterId = 1
972+ )
973+ var varsData = res.metadata.evaluatedVariablesState
974+ assertEquals(1 , varsData.size)
975+ assertTrue(varsData.containsKey(" x" ))
976+
977+ var setData = varsData[" x" ]!!
978+ assertTrue(setData.isContainer)
979+ assertEquals(2 , setData.fieldDescriptor.size)
980+ var setDescriptors = setData.fieldDescriptor
981+ assertEquals(" 4" , setDescriptors[" size" ]!! .value)
982+ assertTrue(setDescriptors[" data" ]!! .isContainer)
983+ assertEquals(4 , setDescriptors[" data" ]!! .fieldDescriptor.size)
984+ assertEquals(" a" , setDescriptors[" data" ]!! .fieldDescriptor[" a" ]!! .value)
985+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" b" ))
986+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" cc" ))
987+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" c" ))
988+
989+ res = eval(
990+ """
991+ val c = mutableSetOf("a", "b", "cc", "c")
992+ """ .trimIndent(),
993+ jupyterId = 2
994+ )
995+ varsData = res.metadata.evaluatedVariablesState
996+ assertEquals(2 , varsData.size)
997+ assertTrue(varsData.containsKey(" c" ))
998+
999+ setData = varsData[" c" ]!!
1000+ assertTrue(setData.isContainer)
1001+ assertEquals(2 , setData.fieldDescriptor.size)
1002+ setDescriptors = setData.fieldDescriptor
1003+ assertEquals(" 4" , setDescriptors[" size" ]!! .value)
1004+ assertTrue(setDescriptors[" data" ]!! .isContainer)
1005+ assertEquals(4 , setDescriptors[" data" ]!! .fieldDescriptor.size)
1006+ assertEquals(" a" , setDescriptors[" data" ]!! .fieldDescriptor[" a" ]!! .value)
1007+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" b" ))
1008+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" cc" ))
1009+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" c" ))
1010+ }
1011+
9641012 @Test
9651013 fun testSerializationMessage () {
9661014 val res = eval(
@@ -983,9 +1031,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
9831031
9841032 val innerList = data.entries.last().value
9851033 assertTrue(innerList.isContainer)
986- var receivedDescriptor = innerList.fieldDescriptor
987- assertEquals(2 , receivedDescriptor.size)
988- receivedDescriptor = receivedDescriptor.entries.last().value!! .fieldDescriptor
1034+ val receivedDescriptor = innerList.fieldDescriptor
9891035
9901036 assertEquals(4 , receivedDescriptor.size)
9911037 var values = 1
@@ -1005,9 +1051,8 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
10051051
10061052 val innerList = data.entries.last().value
10071053 assertTrue(innerList.isContainer)
1008- var receivedDescriptor = innerList.fieldDescriptor
1009- assertEquals(2 , receivedDescriptor.size)
1010- receivedDescriptor = receivedDescriptor.entries.last().value!! .fieldDescriptor
1054+ val receivedDescriptor = innerList.fieldDescriptor
1055+
10111056
10121057 assertEquals(4 , receivedDescriptor.size)
10131058 var values = 1
@@ -1058,5 +1103,26 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
10581103 )
10591104 assertTrue(state.isNotEmpty())
10601105 assertEquals(state, setOfPrevCell)
1106+
1107+
1108+ eval(
1109+ """
1110+ private val x = 341
1111+ protected val z = "abcd"
1112+ """ .trimIndent(),
1113+ jupyterId = 1
1114+ )
1115+ assertTrue(state.isEmpty())
1116+
1117+ eval(
1118+ """
1119+ private val x = "abcd"
1120+ var f = 47
1121+ internal val z = 47
1122+ """ .trimIndent(),
1123+ jupyterId = 1
1124+ )
1125+ assertTrue(state.isNotEmpty())
1126+ assertEquals(setOfPrevCell, state)
10611127 }
10621128}
0 commit comments