@@ -639,18 +639,23 @@ class ReplVarsTest : AbstractSingleReplTest() {
639
639
"""
640
640
val x = 124
641
641
private var f = "abcd"
642
- """ .trimIndent()
642
+ """ .trimIndent(),
643
+ jupyterId = 1
643
644
)
644
645
val state = repl.notebook.cellVariables
645
646
assertTrue(state.isNotEmpty())
647
+
648
+ // f is not accessible from here
646
649
eval(
647
650
"""
648
651
private var z = 1
649
652
z += x
650
- """ .trimIndent()
653
+ """ .trimIndent(),
654
+ jupyterId = 1
651
655
)
652
656
assertTrue(state.isNotEmpty())
653
657
658
+ // TODO discuss if we really want this
654
659
val setOfCell = setOf (" z" , " f" , " x" )
655
660
assertTrue(state.containsValue(setOfCell))
656
661
}
@@ -830,6 +835,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
830
835
831
836
val serializer = repl.variablesSerializer
832
837
val newData = serializer.doIncrementalSerialization(0 , " data" , actualContainer)
838
+ val a = 1
833
839
}
834
840
835
841
@Test
@@ -913,13 +919,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
913
919
val serializer = repl.variablesSerializer
914
920
915
921
val newData = serializer.doIncrementalSerialization(0 , listData.fieldDescriptor.entries.first().key, actualContainer)
916
- var receivedDescriptor = newData.fieldDescriptor
917
- assertEquals(2 , receivedDescriptor.size)
918
- assertTrue(receivedDescriptor.containsKey(" size" ))
919
-
920
- val innerList = receivedDescriptor.entries.last().value!!
921
- assertTrue(innerList.isContainer)
922
- receivedDescriptor = innerList.fieldDescriptor
922
+ val receivedDescriptor = newData.fieldDescriptor
923
923
assertEquals(4 , receivedDescriptor.size)
924
924
925
925
var values = 1
@@ -967,13 +967,61 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
967
967
assertEquals(3 , newDescriptor[" data" ]!! .fieldDescriptor.size)
968
968
val ansSet = mutableSetOf (" a" , " b" , " c" )
969
969
newDescriptor[" data" ]!! .fieldDescriptor.forEach { (_, state) ->
970
- assertTrue (state!! .isContainer)
970
+ assertFalse (state!! .isContainer)
971
971
assertTrue(ansSet.contains(state.value))
972
972
ansSet.remove(state.value)
973
973
}
974
974
assertTrue(ansSet.isEmpty())
975
975
}
976
976
977
+
978
+ @Test
979
+ fun testSetContainer () {
980
+ var res = eval(
981
+ """
982
+ val x = setOf("a", "b", "cc", "c")
983
+ """ .trimIndent(),
984
+ jupyterId = 1
985
+ )
986
+ var varsData = res.metadata.evaluatedVariablesState
987
+ assertEquals(1 , varsData.size)
988
+ assertTrue(varsData.containsKey(" x" ))
989
+
990
+ var setData = varsData[" x" ]!!
991
+ assertTrue(setData.isContainer)
992
+ assertEquals(2 , setData.fieldDescriptor.size)
993
+ var setDescriptors = setData.fieldDescriptor
994
+ assertEquals(" 4" , setDescriptors[" size" ]!! .value)
995
+ assertTrue(setDescriptors[" data" ]!! .isContainer)
996
+ assertEquals(4 , setDescriptors[" data" ]!! .fieldDescriptor.size)
997
+ assertEquals(" a" , setDescriptors[" data" ]!! .fieldDescriptor[" a" ]!! .value)
998
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" b" ))
999
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" cc" ))
1000
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" c" ))
1001
+
1002
+ res = eval(
1003
+ """
1004
+ val c = mutableSetOf("a", "b", "cc", "c")
1005
+ """ .trimIndent(),
1006
+ jupyterId = 2
1007
+ )
1008
+ varsData = res.metadata.evaluatedVariablesState
1009
+ assertEquals(2 , varsData.size)
1010
+ assertTrue(varsData.containsKey(" c" ))
1011
+
1012
+ setData = varsData[" c" ]!!
1013
+ assertTrue(setData.isContainer)
1014
+ assertEquals(2 , setData.fieldDescriptor.size)
1015
+ setDescriptors = setData.fieldDescriptor
1016
+ assertEquals(" 4" , setDescriptors[" size" ]!! .value)
1017
+ assertTrue(setDescriptors[" data" ]!! .isContainer)
1018
+ assertEquals(4 , setDescriptors[" data" ]!! .fieldDescriptor.size)
1019
+ assertEquals(" a" , setDescriptors[" data" ]!! .fieldDescriptor[" a" ]!! .value)
1020
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" b" ))
1021
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" cc" ))
1022
+ assertTrue(setDescriptors[" data" ]!! .fieldDescriptor.containsKey(" c" ))
1023
+ }
1024
+
977
1025
@Test
978
1026
fun testSerializationMessage () {
979
1027
val res = eval(
@@ -996,9 +1044,7 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
996
1044
997
1045
val innerList = data.entries.last().value
998
1046
assertTrue(innerList.isContainer)
999
- var receivedDescriptor = innerList.fieldDescriptor
1000
- assertEquals(2 , receivedDescriptor.size)
1001
- receivedDescriptor = receivedDescriptor.entries.last().value!! .fieldDescriptor
1047
+ val receivedDescriptor = innerList.fieldDescriptor
1002
1048
1003
1049
assertEquals(4 , receivedDescriptor.size)
1004
1050
var values = 1
@@ -1018,9 +1064,8 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
1018
1064
1019
1065
val innerList = data.entries.last().value
1020
1066
assertTrue(innerList.isContainer)
1021
- var receivedDescriptor = innerList.fieldDescriptor
1022
- assertEquals(2 , receivedDescriptor.size)
1023
- receivedDescriptor = receivedDescriptor.entries.last().value!! .fieldDescriptor
1067
+ val receivedDescriptor = innerList.fieldDescriptor
1068
+
1024
1069
1025
1070
assertEquals(4 , receivedDescriptor.size)
1026
1071
var values = 1
@@ -1071,5 +1116,26 @@ class ReplVarsSerializationTest : AbstractSingleReplTest() {
1071
1116
)
1072
1117
assertTrue(state.isNotEmpty())
1073
1118
assertEquals(state, setOfPrevCell)
1119
+
1120
+
1121
+ eval(
1122
+ """
1123
+ private val x = 341
1124
+ protected val z = "abcd"
1125
+ """ .trimIndent(),
1126
+ jupyterId = 1
1127
+ )
1128
+ assertTrue(state.isEmpty())
1129
+
1130
+ eval(
1131
+ """
1132
+ private val x = "abcd"
1133
+ var f = 47
1134
+ internal val z = 47
1135
+ """ .trimIndent(),
1136
+ jupyterId = 1
1137
+ )
1138
+ assertTrue(state.isNotEmpty())
1139
+ assertEquals(setOfPrevCell, state)
1074
1140
}
1075
1141
}
0 commit comments