-
Notifications
You must be signed in to change notification settings - Fork 103
Expand file tree
/
Copy pathNotebookParsingDataTest.java
More file actions
115 lines (98 loc) · 4.78 KB
/
NotebookParsingDataTest.java
File metadata and controls
115 lines (98 loc) · 4.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/*
* SonarQube Python Plugin
* Copyright (C) SonarSource Sàrl
* mailto:info AT sonarsource DOT com
*
* You can redistribute and/or modify this program under the terms of
* the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the Sonar Source-Available License for more details.
*
* You should have received a copy of the Sonar Source-Available License
* along with this program; if not, see https://sonarsource.com/license/ssal/
*/
package org.sonar.plugins.python;
import java.util.LinkedHashMap;
import java.util.Map;
import org.junit.jupiter.api.Test;
import org.sonar.python.IPythonLocation;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
class NotebookParsingDataTest {
@Test
void testAddDelimiterToSource() {
var data = new NotebookParsingData(new StringBuilder().append("First line"), new LinkedHashMap<>(), 0);
data.addDelimiterToSource("Test", 1, 2);
assertThat(data).extracting(d -> d.getAggregatedSource().toString()).isEqualTo("First lineTest");
assertThat(data).extracting(d -> d.getAggregatedSourceLine()).isEqualTo(1);
assertThat(data).extracting(d -> d.getLocationMap().size()).isEqualTo(1);
assertThat(data).extracting(d -> d.getLocationMap().get(1).line()).isEqualTo(1);
assertThat(data).extracting(d -> d.getLocationMap().get(1).column()).isEqualTo(2);
}
@Test
void testAddLineToSource() {
var data = new NotebookParsingData(new StringBuilder().append("First line"), new LinkedHashMap<>(), 5);
data.addLineToSource("Test", new IPythonLocation(1, 2));
assertThat(data).extracting(d -> d.getAggregatedSource().toString()).isEqualTo("First lineTest");
assertThat(data).extracting(d -> d.getAggregatedSourceLine()).isEqualTo(6);
assertThat(data).extracting(d -> d.getLocationMap().size()).isEqualTo(1);
assertThat(data).extracting(d -> d.getLocationMap().get(6).line()).isEqualTo(1);
assertThat(data).extracting(d -> d.getLocationMap().get(6).column()).isEqualTo(2);
}
@Test
void testCombineEmpty() {
var data = NotebookParsingData.empty();
var data2 = NotebookParsingData.empty();
data.combine(data2);
assertEquals(data, NotebookParsingData.empty());
}
@Test
void testCombine() {
var location1 = new LinkedHashMap<Integer, IPythonLocation>();
location1.put(1, new IPythonLocation(0, 1));
var data = new NotebookParsingData(new StringBuilder().append("a"), location1, 4);
var location2 = new LinkedHashMap<Integer, IPythonLocation>();
location2.put(3, new IPythonLocation(2, 1));
var data2 = new NotebookParsingData(new StringBuilder().append("b"), location2, 3);
data.combine(data2);
assertThat(data).extracting(notebook -> notebook.getAggregatedSourceLine()).isEqualTo(3);
assertThat(data).extracting(notebook -> notebook.getLocationMap().size()).isEqualTo(2);
assertThat(data).extracting(notebook -> notebook.getAggregatedSource().toString()).isEqualTo("ab");
}
@Test
void testRemoveTrailingExtraLineDoesNothing() {
var data = new NotebookParsingData(new StringBuilder().append("First line"), new LinkedHashMap<>(), 5);
assertThat(data).extracting(d -> d.getAggregatedSource().toString()).isEqualTo("First line");
data.removeTrailingExtraLine();
assertThat(data).extracting(d -> d.getAggregatedSource().toString()).isEqualTo("First line");
var emptyLines = new NotebookParsingData(new StringBuilder(), new LinkedHashMap<>(), 5);
assertThat(emptyLines).extracting(d -> d.getAggregatedSource().toString()).isEqualTo("");
emptyLines.removeTrailingExtraLine();
assertThat(emptyLines).extracting(d -> d.getAggregatedSource().toString()).isEqualTo("");
}
@Test
void testRemoveTrailingExtraLine() {
var data = new NotebookParsingData(new StringBuilder().append("First line\n"), new LinkedHashMap<>(), 5);
assertThat(data).extracting(d -> d.getAggregatedSource().toString()).isEqualTo("First line\n");
data.removeTrailingExtraLine();
assertThat(data).extracting(d -> d.getAggregatedSource().toString()).isEqualTo("First line");
}
@Test
void testEquals() {
var empty = NotebookParsingData.empty();
assertEquals(empty, empty);
assertNotEquals("test", empty);
var data = new NotebookParsingData(new StringBuilder().append("Test"), Map.of(), 0);
assertNotEquals(data, empty);
}
@Test
void testHashcode() {
var empty = NotebookParsingData.empty();
assertEquals(empty.hashCode(), empty.hashCode());
assertNotEquals(empty.hashCode(), "test".hashCode());
}
}