@@ -668,18 +668,23 @@ class ReplVarsTest : AbstractSingleReplTest() {
668668 """
669669 val x = 124
670670 private var f = "abcd"
671- """ .trimIndent()
671+ """ .trimIndent(),
672+ jupyterId = 1
672673 )
673674 val state = repl.notebook.cellVariables
674675 assertTrue(state.isNotEmpty())
676+
677+ // f is not accessible from here
675678 eval(
676679 """
677680 private var z = 1
678681 z += x
679- """ .trimIndent()
682+ """ .trimIndent(),
683+ jupyterId = 1
680684 )
681685 assertTrue(state.isNotEmpty())
682686
687+ // TODO discuss if we really want this
683688 val setOfCell = setOf (" z" , " f" , " x" )
684689 assertTrue(state.containsValue(setOfCell))
685690 }
@@ -809,6 +814,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
809814
810815 val serializer = repl.variablesSerializer
811816 val newData = serializer.doIncrementalSerialization(0 , " data" , actualContainer)
817+ val a = 1
812818 }
813819
814820 @Test
@@ -892,13 +898,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
892898 val serializer = repl.variablesSerializer
893899
894900 val newData = serializer.doIncrementalSerialization(0 , listData.fieldDescriptor.entries.first().key, actualContainer)
895- var receivedDescriptor = newData.fieldDescriptor
896- assertEquals(2 , receivedDescriptor.size)
897- assertTrue(receivedDescriptor.containsKey(" size" ))
898-
899- val innerList = receivedDescriptor.entries.last().value!!
900- assertTrue(innerList.isContainer)
901- receivedDescriptor = innerList.fieldDescriptor
901+ val receivedDescriptor = newData.fieldDescriptor
902902 assertEquals(4 , receivedDescriptor.size)
903903
904904 var values = 1
@@ -946,13 +946,61 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
946946 assertEquals(3 , newDescriptor[" data" ]!! .fieldDescriptor.size)
947947 val ansSet = mutableSetOf (" a" , " b" , " c" )
948948 newDescriptor[" data" ]!! .fieldDescriptor.forEach { (_, state) ->
949- assertTrue (state!! .isContainer)
949+ assertFalse (state!! .isContainer)
950950 assertTrue(ansSet.contains(state.value))
951951 ansSet.remove(state.value)
952952 }
953953 assertTrue(ansSet.isEmpty())
954954 }
955955
956+
957+ @Test
958+ fun testSetContainer () {
959+ var res = eval(
960+ """
961+ val x = setOf("a", "b", "cc", "c")
962+ """ .trimIndent(),
963+ jupyterId = 1
964+ )
965+ var varsData = res.metadata.evaluatedVariablesState
966+ assertEquals(1 , varsData.size)
967+ assertTrue(varsData.containsKey(" x" ))
968+
969+ var setData = varsData[" x" ]!!
970+ assertTrue(setData.isContainer)
971+ assertEquals(2 , setData.fieldDescriptor.size)
972+ var setDescriptors = setData.fieldDescriptor
973+ assertEquals(" 4" , setDescriptors[" size" ]!! .value)
974+ assertTrue(setDescriptors[" data" ]!! .isContainer)
975+ assertEquals(4 , setDescriptors[" data" ]!! .fieldDescriptor.size)
976+ assertEquals(" a" , setDescriptors[" data" ]!! .fieldDescriptor[" a" ]!! .value)
977+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" b" ))
978+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" cc" ))
979+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" c" ))
980+
981+ res = eval(
982+ """
983+ val c = mutableSetOf("a", "b", "cc", "c")
984+ """ .trimIndent(),
985+ jupyterId = 2
986+ )
987+ varsData = res.metadata.evaluatedVariablesState
988+ assertEquals(2 , varsData.size)
989+ assertTrue(varsData.containsKey(" c" ))
990+
991+ setData = varsData[" c" ]!!
992+ assertTrue(setData.isContainer)
993+ assertEquals(2 , setData.fieldDescriptor.size)
994+ setDescriptors = setData.fieldDescriptor
995+ assertEquals(" 4" , setDescriptors[" size" ]!! .value)
996+ assertTrue(setDescriptors[" data" ]!! .isContainer)
997+ assertEquals(4 , setDescriptors[" data" ]!! .fieldDescriptor.size)
998+ assertEquals(" a" , setDescriptors[" data" ]!! .fieldDescriptor[" a" ]!! .value)
999+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" b" ))
1000+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" cc" ))
1001+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" c" ))
1002+ }
1003+
9561004 @Test
9571005 fun testSerializationMessage () {
9581006 val res = eval(
@@ -975,9 +1023,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
9751023
9761024 val innerList = data.entries.last().value
9771025 assertTrue(innerList.isContainer)
978- var receivedDescriptor = innerList.fieldDescriptor
979- assertEquals(2 , receivedDescriptor.size)
980- receivedDescriptor = receivedDescriptor.entries.last().value!! .fieldDescriptor
1026+ val receivedDescriptor = innerList.fieldDescriptor
9811027
9821028 assertEquals(4 , receivedDescriptor.size)
9831029 var values = 1
@@ -997,9 +1043,8 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
9971043
9981044 val innerList = data.entries.last().value
9991045 assertTrue(innerList.isContainer)
1000- var receivedDescriptor = innerList.fieldDescriptor
1001- assertEquals(2 , receivedDescriptor.size)
1002- receivedDescriptor = receivedDescriptor.entries.last().value!! .fieldDescriptor
1046+ val receivedDescriptor = innerList.fieldDescriptor
1047+
10031048
10041049 assertEquals(4 , receivedDescriptor.size)
10051050 var values = 1
@@ -1050,5 +1095,26 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
10501095 )
10511096 assertTrue(state.isNotEmpty())
10521097 assertEquals(state, setOfPrevCell)
1098+
1099+
1100+ eval(
1101+ """
1102+ private val x = 341
1103+ protected val z = "abcd"
1104+ """ .trimIndent(),
1105+ jupyterId = 1
1106+ )
1107+ assertTrue(state.isEmpty())
1108+
1109+ eval(
1110+ """
1111+ private val x = "abcd"
1112+ var f = 47
1113+ internal val z = 47
1114+ """ .trimIndent(),
1115+ jupyterId = 1
1116+ )
1117+ assertTrue(state.isNotEmpty())
1118+ assertEquals(setOfPrevCell, state)
10531119 }
10541120}
0 commit comments