-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add simple Unit Tests for #6207 #6240
Add simple Unit Tests for #6207 #6240
Conversation
Add the following changes: -remove multiple assert statements in test cases -split each assert statement in different test methods with meaningful test names
Fix some encoding problems Fix merge conflict with the master branch
I would split it even further, create a separate class for each IntegrityCheckTest (e.g. one class for Edition, one for Author, ...) as we also have a different class for each integrity check |
@@ -186,6 +292,17 @@ void testTitleChecks() { | |||
assertCorrect(withMode(createContext(StandardField.TITLE, "This is a {Title}"), BibDatabaseMode.BIBTEX)); | |||
assertCorrect(withMode(createContext(StandardField.TITLE, "{C}urrent {C}hronicle"), BibDatabaseMode.BIBTEX)); | |||
assertCorrect(withMode(createContext(StandardField.TITLE, "{A Model-Driven Approach for Monitoring {ebBP} BusinessTransactions}"), BibDatabaseMode.BIBTEX)); | |||
assertCorrect(withMode(createContext(StandardField.TITLE, "This is a sub title 1: This is a sub title 2"), BibDatabaseMode.BIBTEX)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would move all these tests to TitleCheckerTest
and just keep one subtitle tests here.
This test class here is only for an integration test (TitleChecker is integrated in the IntegrityCheck) - the "real" functionality is in org.jabref.logic.integrity.TitleChecker
.
When you are on it, you could fix the capitalization in TitleCheckerTest:
Hi @dimitra-karadima , thanks for you effort. Writing unit tests is sometimes boring, but can also be very educational. Thank you very much. |
Thanks for your input! I will keep it in mind for the upcoming PRs! |
@dimitra-karadima Did you already found the time to address the comments above? |
@tobiasdiez Sorry I was a little bit busy but until Sunday I will commit my new changes! |
Add the following changes: -move tests from IntegrityCheckTest to the appropriate Test classes -remove multiple assert statements in different test methods -fix the capitalization in TitleCheckerTest
Change two failing tests to succesfull Remove one test
@tobiasdiez what do you think about my latest commit? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for continuing working on it.
Please use checker.checkValue
instead of IntegrityCheckTest...
. Reason: Keep the tests focused in the test subject. See the name "AbbreviationCheckerTest"? It tests the class "AbbreviationChecker".
Could you please rework the added tests to use that? You can work on a direct field value, no need to think of StandardField...
.
See other test classes in the same package for examples. E.g., https://github.com/JabRef/jabref/blob/master/src/test/java/org/jabref/logic/integrity/TitleCheckerTest.java
public class ASCIICharacterCheckerTest { | ||
|
||
@Test | ||
void fieldAcceptsASCIICharacters() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
void fieldAcceptsASCIICharacters() { | |
void fieldAcceptsAsciiCharacters() { |
Even not conform with current JabRef classes, please use defined camel case - see https://google.github.io/styleguide/javaguide.html#s5.3-camel-case for details.
@Test | ||
void journalNameAcceptsFullForm() { | ||
for (Field field : Arrays.asList(StandardField.BOOKTITLE, StandardField.JOURNAL)) { | ||
IntegrityCheckTest.assertCorrect(IntegrityCheckTest.createContext(field, "IEEE Software")); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please use checker.checkValue
instead of IntegrityCheckTest...
. Reason: Keep the tests focused in the test subject.
See the name "AbbreviationCheckerTest"? It tests the class "AbbreviationChecker". This class is instantiated in line 25.
Also applies for the other checks you added. Could you please rework?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@koppor I changed every class that has a checkValue method. But some of them like ASCIICharacterChecker.java has a different method(public List check(BibEntry entry)). Do you want me to change those tests too? If yes can you suggest me something? Because it is like IntegrityCheck.java and you haven't made any comments on my test class.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- No errors:
assertEquals(Collections.emptyList(), assciCharacterChecker.check(entry));
- Errors:
assertEquals(List.of(new IntegrityCheckMessage("...text", StandardFields.DOI)), assciCharacterChecker.check(entry));)
. This way, the real error message is checked. And if someone changes something in the checker, it is also noted in the tests. See our long disucssions at Remove dash from illegal characters. #6300 (which are also caused by failing tests - and we were forced to think about the intended behavior more deeply).
Add the following changes: -Use checker.checkValue or checker.check instead of IntegrityCheckTest... -Split a method with multiple assertion methods in FileCheckerTest into three different with a simple assertion method -Rename a method in ASCIICharacterCheckerTest in order to use defined camel case
Looks got o me. Please resolve the conflicts at |
@koppor I fixed it! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Huge diff. Difficult to review. Think, I found the important parts.
Something went wrong with the merge. Cannot look now. Can you check it?
|
||
@BeforeEach | ||
public void setUp() { | ||
checker = new BooktitleChecker(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need for the @BeforeEach
here. Just initialize the checker
in line 13. --> One SLOC insted of 6 for the same functionality. -- JUnit initializes the class on each run.
Please check the other (modified) classes, too.
private BibDatabaseContext bibDatabaseContext; | ||
private List<IntegrityMessage> messages; | ||
MetaData metaData = mock(MetaData.class); | ||
//private FilePreferences f; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is here commented code?
@@ -390,21 +84,21 @@ private BibDatabaseContext createContext(Field field, String value, EntryType ty | |||
return new BibDatabaseContext(bibDatabase); | |||
} | |||
|
|||
private BibDatabaseContext createContext(Field field, String value, MetaData metaData) { | |||
protected static BibDatabaseContext createContext(Field field, String value, MetaData metaData) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why was the modifier changed? Is this method used outside of this class? It should be private
. Adding static
is OK for me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@koppor yes it was used outside of the class. I changed it now so all classes are independent. And I think I covered all the issues mentioned with my new commits. Please check it out and let me know what you think!
|
||
@BeforeEach | ||
void setUp() { | ||
//hash.put(StandardField.ABSTRACT, ""); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't find this commented code in the old IntegrityCheck Test. Why is it here?
//hash.put(StandardField.ABSTRACT, ""); | ||
//f = new FilePreferences("", hash, true, "", ""); | ||
bibDatabaseContext = new BibDatabaseContext(); | ||
checker = new FileChecker(bibDatabaseContext, mock(FilePreferences.class)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this checker ever used in this class?
I would propose to
a) remove this unused code
b) readd the test void testFileChecks() {
in the IntegrityCheck class as the DIFFERENCE to this test is that the FILE
field is checked - and this coudl have some side effects.
More background:
I wondered why metaData has to be mocked. The only reason can be the special treatment of the file field. I think, we should keep this code. The code can be left in the IntegrityCheckerTest class - if we don't come up with some better place.
Add the following changes: -Revert all methods from protected static to private -Change BibtexKeyCheckerTest in order not to use IntegrityCheckTest's methods -Add two tests methods that were moved to another class
Due to recent merges to master the JournalAbbreviationRepository constructor changed so the creation of the object changes as well.
Remove it wherever it was just creating objects
Remove unnecessary BibEntry initialization and import
@dimitra-karadima Thank you for continuing to work on it. It would be very nice if you looked at our automated tests. The checkstyle is failing: You can avoid the unused imports if you format the file. Please ensure that you have the JabRef code style active in IntelliJ. See https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace#using-jabrefs-code-style for details. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just did not find the for
loops. I checked the other tests - and I found them all re-added.
Please fix checkstyle, too.
Then, it should be good to go 🎉
|
||
@Test | ||
void testAuthorNameChecks() { | ||
for (Field field : FieldFactory.getPersonNameFields()) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't find this for loop in the new code. Was it deleted completely or did I just not find it? If it was deleted, please re-add it. -- Maybe: Is the test already existing somewhere else?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@koppor I placed these tests in the PersonNamesCheckerTest. Do you want me to add the for loops in all the added tests there?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just checked. Did not find assertCorrect(withMode(createContext(field, ""), BibDatabaseMode.BIBLATEX))
there. Could you do a double check for commit and push, please?
For the for loop, please use @MethodSource
as described at https://www.baeldung.com/parameterized-tests-junit-5#6-method.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@koppor I will use the @MethodSource
as you suggested but the line you mentioned have been replaced because the methods used are declared in the IntegrityCheckTest and we want all the test classes to be interdependent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good step forward. Note to self:
- Check for
FieldFactory.getPersonNameFields()
inPersonNamesCheckerTest
. - Check for
Stream.of(Arguments.of
in the new code (as this was linked to from https://www.baeldung.com/parameterized-tests-junit-5#6-method)
After thinking longer, the first aspect cannot be made in PersonChecker
.
Thus, please rewrite the test here to provide a Field
from FieldFactory.getPersonNameFields()
as source: Split the asserts up and have field
as paramter. Thus, each assertCorrect
and each assertWrong
will become a separate @Test
.
(The alternative is to provide two parameters to a @Test
as you did in PersonNamesCheckerTest
).
} | ||
|
||
@Test | ||
void testAbbreviationChecks() { | ||
for (Field field : Arrays.asList(StandardField.BOOKTITLE, StandardField.JOURNAL)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did not find this test in the diff. Is the test already existing somewhere else?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@koppor I thought that these tests were covered in the AbbreviationCheckerTest. Do you want me to re-add these tests here?
Rework test class because checkstyle is failing
Had to retrigger the build workflows as they were not executed correctly. Checkstyle still fails: @dimitra-karadima You can execute the checkstyle checks locally. Either in the IDE or using |
|
||
@Test | ||
void testAuthorNameChecks() { | ||
for (Field field : FieldFactory.getPersonNameFields()) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just checked. Did not find assertCorrect(withMode(createContext(field, ""), BibDatabaseMode.BIBLATEX))
there. Could you do a double check for commit and push, please?
For the for loop, please use @MethodSource
as described at https://www.baeldung.com/parameterized-tests-junit-5#6-method.
Fix because instance variable definition was in wrong order.
Change from multiple test methods to two parameterized with @MethodSource
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the quick answer. I understood the intion of IntegrityCheckTest
now more. Added a suggestion to the JavaDoc and commented the proposed changes accordingly. Could you please adress them?
|
||
@Test | ||
void testAuthorNameChecks() { | ||
for (Field field : FieldFactory.getPersonNameFields()) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good step forward. Note to self:
- Check for
FieldFactory.getPersonNameFields()
inPersonNamesCheckerTest
. - Check for
Stream.of(Arguments.of
in the new code (as this was linked to from https://www.baeldung.com/parameterized-tests-junit-5#6-method)
After thinking longer, the first aspect cannot be made in PersonChecker
.
Thus, please rewrite the test here to provide a Field
from FieldFactory.getPersonNameFields()
as source: Split the asserts up and have field
as paramter. Thus, each assertCorrect
and each assertWrong
will become a separate @Test
.
(The alternative is to provide two parameters to a @Test
as you did in PersonNamesCheckerTest
).
@@ -62,4 +69,29 @@ public void validCorporateNameAndPerson() throws Exception { | |||
assertEquals(Optional.empty(), checker.checkValue("{JabRef} and Stefan Kolb")); | |||
assertEquals(Optional.empty(), checker.checkValue("{JabRef} and Kolb, Stefan")); | |||
} | |||
|
|||
@ParameterizedTest | |||
@MethodSource("provideCorrectFormats") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a good step forward.
The aspect of a field
check is missing. To keep that in IntegrityCheckTest
is a good idea. See my comments there.
The inputs will be duplicated, but that is OK.
@@ -39,197 +37,23 @@ | |||
class IntegrityCheckTest { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think, a JavaDoc should be added explaning the difference between this test and the CheckerTests. Here a proposal:
class IntegrityCheckTest { | |
/** | |
* This class tests the Integrity Checker as a whole. Aspects are: selected fields, issues arising in a complete BibTeX entry, ... When testing a checker works with a certain input, this test has to go to a test belonging to the respective checker. See PersonNamesCheckerTest for an example test. | |
*/ | |
class IntegrityCheckTest { |
} | ||
|
||
private static String[] provideCorrectFormats() { | ||
String[] data = new String[] {"", "Knuth", "Donald E. Knuth and Kurt Cobain and A. Einstein"}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since a single String
string is required at each test, please use following code:
String[] data = new String[] {"", "Knuth", "Donald E. Knuth and Kurt Cobain and A. Einstein"}; | |
return Stream.of("", "Knuth", "Donald E. Knuth and Kurt Cobain and A. Einstein"); |
This is more readble than String[]
. The return type will be Stream<String>
.
} | ||
|
||
private static String[] provideIncorrectFormats() { | ||
String[] data = new String[] {" Knuth, Donald E. ", "Knuth, Donald E. and Kurt Cobain and A. Einstein", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See above --> Stream.of(...)
.
Change the return type of two methods from String[] to Stream<String> since it is more readable.
Add the following changes: -Add Javadoc -Rewrite testAuthorNameChecks with @MethodSource
Thank you for the follow up - I merged it as a single commit into a local branch in this repository. I will address the minor comments for myself there. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only the empty line was missing. Fixed it for myself and will merge. Thank you for the work.
* Aspects are: selected fields, issues arising in a complete BibTeX entry, ... When testing a checker works with a certain input, | ||
* this test has to go to a test belonging to the respective checker. See PersonNamesCheckerTest for an example test. | ||
*/ | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No empty line between JavaDoc and code.
* upstream/master: (50 commits) Keep group pane size when resizing window (#6180) (#6423) Changelog: Fix missing citation for biblatex-mla Update AUTHORS Check duplicate DOI (#6333) Fix missing citation for biblatex-mla Change EasyBind dependency (#6480) Add testing of latest dev version as mandatory Squashed 'src/main/resources/csl-styles/' changes from 5dad23d..586e0b8 Fix libre office connection and other progress dialogs (#6478) Fix clear year and month field when converting to biblatex (#6434) Add truncate as a BibTex key modifier (#6427) Add new authors (not all - they need more work) Remove empty line Add simple Unit Tests for #6207 (#6240) Enforce LeftCurly rule (#6452) Implement task progress indicator (and dialog) in the toolbar (#6443) Consider empty brackets Changelog update Added a test Fixed brackets in regular expressions ...
80b3861bce Update al-jamiah-journal-of-islamic-studies.csl (#6581) b6fb00e415 Create arachnologische-mitteilungen.csl (#6375) 2dbc8edf8e Update universitat-basel-iberoromanistik.csl (#6580) fd230a7073 Create veterinary-clinical-pathology.csl (#6372) ac0afa3cae Create dedicated Basque APA file (#6370) fee0677a88 Update chicago-author-date.csl (#6289) ca1bf2db6e Create van-yuzuncu-yil-universitesi-fen-bilimleri-enstitusu.csl (#6230) f4116db325 Create Turcica.csl (#6240) 0e4311a802 Create jurnal-teknik-mesin-indonesia.csl (#6211) e73bf46674 Update vancouver.csl (#6156) b73c3ef193 Create independent TF AIP Style befa82e7ef Create harvard-xi-an-jiaotong-liverpool-univeisity.csl (#6181) 048c9bddbc Add csl for SDMI (#6129) 1c2aedd088 Update and rename dependent/energy-research-and-social-science.csl to energy-research-and-social-science.csl (#6567) b77084255f Update the-quarterly-journal-of-economics.csl (#6572) cf66f60f25 Update publicatiewijzer-voor-de-archeologie.csl (#6577) 9e9e08c219 Update isara-iso-690.csl (#6578) 4b4e8f442d Create silva-fennica.csl (#6568) dd8760bb2b Update american-journal-of-botany.csl (#6569) 8b0e505363 Update haute-ecole-de-gestion-de-geneve-iso-690.csl (#6560) 016050c4b7 Update geographie-et-cultures.csl (#6563) e8b62f1c80 Update and rename dependent/retina.csl to retina.csl (#6565) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 80b3861bce121a64d43ef167581f8d100a4f70aa
…ce (#10048) 80b3861bce Update al-jamiah-journal-of-islamic-studies.csl (#6581) b6fb00e415 Create arachnologische-mitteilungen.csl (#6375) 2dbc8edf8e Update universitat-basel-iberoromanistik.csl (#6580) fd230a7073 Create veterinary-clinical-pathology.csl (#6372) ac0afa3cae Create dedicated Basque APA file (#6370) fee0677a88 Update chicago-author-date.csl (#6289) ca1bf2db6e Create van-yuzuncu-yil-universitesi-fen-bilimleri-enstitusu.csl (#6230) f4116db325 Create Turcica.csl (#6240) 0e4311a802 Create jurnal-teknik-mesin-indonesia.csl (#6211) e73bf46674 Update vancouver.csl (#6156) b73c3ef193 Create independent TF AIP Style befa82e7ef Create harvard-xi-an-jiaotong-liverpool-univeisity.csl (#6181) 048c9bddbc Add csl for SDMI (#6129) 1c2aedd088 Update and rename dependent/energy-research-and-social-science.csl to energy-research-and-social-science.csl (#6567) b77084255f Update the-quarterly-journal-of-economics.csl (#6572) cf66f60f25 Update publicatiewijzer-voor-de-archeologie.csl (#6577) 9e9e08c219 Update isara-iso-690.csl (#6578) 4b4e8f442d Create silva-fennica.csl (#6568) dd8760bb2b Update american-journal-of-botany.csl (#6569) 8b0e505363 Update haute-ecole-de-gestion-de-geneve-iso-690.csl (#6560) 016050c4b7 Update geographie-et-cultures.csl (#6563) e8b62f1c80 Update and rename dependent/retina.csl to retina.csl (#6565) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 80b3861bce121a64d43ef167581f8d100a4f70aa Co-authored-by: github actions <[email protected]>
a97dbb32c5 Update studii-teologice.csl (#6591) e19e08780e Update acm-sig-proceedings-long-author-list.csl (#6594) c8abbcdd88 Update acm-sig-proceedings.csl (#6595) 725ace4a40 Create uppsala-university-library-harvard.csl (#6574) a973041e0e update bluebook-law-review.csl (#6583) 0891cfc49a Update masarykova-univerzita-pravnicka-fakulta.csl (#6589) 80b3861bce Update al-jamiah-journal-of-islamic-studies.csl (#6581) b6fb00e415 Create arachnologische-mitteilungen.csl (#6375) 2dbc8edf8e Update universitat-basel-iberoromanistik.csl (#6580) fd230a7073 Create veterinary-clinical-pathology.csl (#6372) ac0afa3cae Create dedicated Basque APA file (#6370) fee0677a88 Update chicago-author-date.csl (#6289) ca1bf2db6e Create van-yuzuncu-yil-universitesi-fen-bilimleri-enstitusu.csl (#6230) f4116db325 Create Turcica.csl (#6240) 0e4311a802 Create jurnal-teknik-mesin-indonesia.csl (#6211) e73bf46674 Update vancouver.csl (#6156) b73c3ef193 Create independent TF AIP Style befa82e7ef Create harvard-xi-an-jiaotong-liverpool-univeisity.csl (#6181) 048c9bddbc Add csl for SDMI (#6129) 1c2aedd088 Update and rename dependent/energy-research-and-social-science.csl to energy-research-and-social-science.csl (#6567) b77084255f Update the-quarterly-journal-of-economics.csl (#6572) cf66f60f25 Update publicatiewijzer-voor-de-archeologie.csl (#6577) 9e9e08c219 Update isara-iso-690.csl (#6578) 4b4e8f442d Create silva-fennica.csl (#6568) dd8760bb2b Update american-journal-of-botany.csl (#6569) 8b0e505363 Update haute-ecole-de-gestion-de-geneve-iso-690.csl (#6560) 016050c4b7 Update geographie-et-cultures.csl (#6563) e8b62f1c80 Update and rename dependent/retina.csl to retina.csl (#6565) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: a97dbb32c57c8c00e47422dae4ba4f480e753da5
0749a19b83 Update journal-of-experimental-botany.csl (#6604) b1768724fe Update modern-language-association.csl (#6606) dd364c1815 Create modern-language-association-for-JEI.csl (#6593) 6cb436997b Partial update of APA styles for 1.0.2, including software, legal, most localizations (#6270) d7c4ebec85 fix film/video authors for american-sociological-association.csl (#6602) a97dbb32c5 Update studii-teologice.csl (#6591) e19e08780e Update acm-sig-proceedings-long-author-list.csl (#6594) c8abbcdd88 Update acm-sig-proceedings.csl (#6595) 725ace4a40 Create uppsala-university-library-harvard.csl (#6574) a973041e0e update bluebook-law-review.csl (#6583) 0891cfc49a Update masarykova-univerzita-pravnicka-fakulta.csl (#6589) 80b3861bce Update al-jamiah-journal-of-islamic-studies.csl (#6581) b6fb00e415 Create arachnologische-mitteilungen.csl (#6375) 2dbc8edf8e Update universitat-basel-iberoromanistik.csl (#6580) fd230a7073 Create veterinary-clinical-pathology.csl (#6372) ac0afa3cae Create dedicated Basque APA file (#6370) fee0677a88 Update chicago-author-date.csl (#6289) ca1bf2db6e Create van-yuzuncu-yil-universitesi-fen-bilimleri-enstitusu.csl (#6230) f4116db325 Create Turcica.csl (#6240) 0e4311a802 Create jurnal-teknik-mesin-indonesia.csl (#6211) e73bf46674 Update vancouver.csl (#6156) b73c3ef193 Create independent TF AIP Style befa82e7ef Create harvard-xi-an-jiaotong-liverpool-univeisity.csl (#6181) 048c9bddbc Add csl for SDMI (#6129) 1c2aedd088 Update and rename dependent/energy-research-and-social-science.csl to energy-research-and-social-science.csl (#6567) b77084255f Update the-quarterly-journal-of-economics.csl (#6572) cf66f60f25 Update publicatiewijzer-voor-de-archeologie.csl (#6577) 9e9e08c219 Update isara-iso-690.csl (#6578) 4b4e8f442d Create silva-fennica.csl (#6568) dd8760bb2b Update american-journal-of-botany.csl (#6569) 8b0e505363 Update haute-ecole-de-gestion-de-geneve-iso-690.csl (#6560) 016050c4b7 Update geographie-et-cultures.csl (#6563) e8b62f1c80 Update and rename dependent/retina.csl to retina.csl (#6565) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 0749a19b8306f2e8dcb9bf1a2e3a6992666030ac
I have split some Unit Tests into different methods with only one assert statement.
@koppor Please let me know what you think about my additions so far!