@@ -4,8 +4,10 @@ import io.kotest.matchers.shouldBe
4
4
import io.kotest.matchers.string.shouldContain
5
5
import io.kotest.matchers.string.shouldNotContain
6
6
import org.jetbrains.kotlinx.dataframe.api.add
7
+ import org.jetbrains.kotlinx.dataframe.api.asColumnGroup
7
8
import org.jetbrains.kotlinx.dataframe.api.columnOf
8
9
import org.jetbrains.kotlinx.dataframe.api.dataFrameOf
10
+ import org.jetbrains.kotlinx.dataframe.api.emptyDataFrame
9
11
import org.jetbrains.kotlinx.dataframe.api.group
10
12
import org.jetbrains.kotlinx.dataframe.api.into
11
13
import org.jetbrains.kotlinx.dataframe.api.move
@@ -14,19 +16,26 @@ import org.jetbrains.kotlinx.dataframe.api.toDataFrame
14
16
import org.jetbrains.kotlinx.dataframe.io.DisplayConfiguration
15
17
import org.jetbrains.kotlinx.dataframe.io.escapeHTML
16
18
import org.jetbrains.kotlinx.dataframe.io.formatter
19
+ import org.jetbrains.kotlinx.dataframe.io.maxDepth
20
+ import org.jetbrains.kotlinx.dataframe.io.maxWidth
17
21
import org.jetbrains.kotlinx.dataframe.io.print
18
22
import org.jetbrains.kotlinx.dataframe.io.renderToString
19
23
import org.jetbrains.kotlinx.dataframe.io.renderToStringTable
20
24
import org.jetbrains.kotlinx.dataframe.io.toHTML
21
25
import org.jetbrains.kotlinx.dataframe.jupyter.DefaultCellRenderer
22
26
import org.jetbrains.kotlinx.dataframe.jupyter.RenderedContent
27
+ import org.jetbrains.kotlinx.dataframe.samples.api.TestBase
28
+ import org.jetbrains.kotlinx.dataframe.samples.api.firstName
29
+ import org.jetbrains.kotlinx.dataframe.samples.api.lastName
30
+ import org.jetbrains.kotlinx.dataframe.samples.api.name
31
+ import org.jetbrains.kotlinx.dataframe.samples.api.secondName
23
32
import org.jsoup.Jsoup
24
33
import org.junit.Test
25
34
import java.net.URL
26
35
import java.text.DecimalFormatSymbols
27
36
import kotlin.reflect.typeOf
28
37
29
- class RenderingTests {
38
+ class RenderingTests : TestBase () {
30
39
31
40
@Test
32
41
fun `render row with unicode values as table` () {
@@ -131,18 +140,38 @@ class RenderingTests {
131
140
val df = dataFrameOf(" a" , " b" )(listOf (1 , 1 ), listOf (2 , 4 ))
132
141
val actualHtml = df.toHTML()
133
142
134
- actualHtml.body shouldContain """
143
+ val body = actualHtml.body.lines().joinToString(" " ) { it.trimStart() }
144
+
145
+ body shouldContain """
135
146
<thead>
136
147
<tr>
137
- <th>a</th><th>b</th>
148
+ <th class="bottomBorder" style="text-align:left">a</th>
149
+ <th class="bottomBorder" style="text-align:left">b</th>
138
150
</tr>
139
151
</thead>
140
152
<tbody>
141
153
<tr>
142
- <td>[1, 1]</td><td>[2, 4]</td>
154
+ <td style="vertical-align:top">[1, 1]</td>
155
+ <td style="vertical-align:top">[2, 4]</td>
143
156
</tr>
144
157
</tbody>
145
158
</table>
146
159
""" .trimIndent().replace(" \n " , " " )
147
160
}
161
+
162
+ @Test
163
+ fun `max depth` () {
164
+ df.maxDepth() shouldBe 1
165
+ dfGroup.maxDepth() shouldBe 2
166
+ emptyDataFrame<Any >().maxDepth() shouldBe 0
167
+ }
168
+
169
+ @Test
170
+ fun `max width` () {
171
+ dfGroup.asColumnGroup(" " ).maxWidth() shouldBe 8
172
+ dfGroup.name.maxWidth() shouldBe 4
173
+ dfGroup.name.firstName.maxWidth() shouldBe 3
174
+ dfGroup.name.lastName.maxWidth() shouldBe 1
175
+ dfGroup.name.firstName.secondName.maxWidth() shouldBe 1
176
+ }
148
177
}
0 commit comments