summaryrefslogtreecommitdiffstats
path: root/yolean
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2022-01-14 23:22:58 +0100
committergjoranv <gv@verizonmedia.com>2022-01-14 23:22:58 +0100
commit122ad4b50aa3f8f4191fdd28e4c6a5593d44a88e (patch)
tree6c907713e8089cbb679cb52ed5d9ea02405c3dc1 /yolean
parent5fc49290a0f02896619fbf2bc2e6a0fb46b7f21a (diff)
Remove tests for code to be removed in Vespa 8
Diffstat (limited to 'yolean')
-rw-r--r--yolean/src/test/java/com/yahoo/yolean/chain/ChainBuilderTest.java400
-rw-r--r--yolean/src/test/java/com/yahoo/yolean/chain/ChainTest.java54
-rw-r--r--yolean/src/test/java/com/yahoo/yolean/chain/DirectedGraphTest.java55
-rw-r--r--yolean/src/test/java/com/yahoo/yolean/chain/EnumeratedIdentitySetTest.java270
4 files changed, 0 insertions, 779 deletions
diff --git a/yolean/src/test/java/com/yahoo/yolean/chain/ChainBuilderTest.java b/yolean/src/test/java/com/yahoo/yolean/chain/ChainBuilderTest.java
deleted file mode 100644
index 1d5b6a6cac7..00000000000
--- a/yolean/src/test/java/com/yahoo/yolean/chain/ChainBuilderTest.java
+++ /dev/null
@@ -1,400 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.yolean.chain;
-
-import org.junit.Test;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import static com.yahoo.yolean.chain.Dependencies.after;
-import static com.yahoo.yolean.chain.Dependencies.before;
-import static com.yahoo.yolean.chain.Dependencies.provides;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-/**
- * @author Tony Vaagenes
- * @author gjoranv
- */
-public class ChainBuilderTest {
-
- static class Filter {
-
- }
-
- static class FilterA extends Filter {
-
- }
-
- static class FilterB extends Filter {
-
- }
-
- static class FilterExtendsA extends FilterA {
-
- }
-
- static class FilterExtendsB extends FilterB {
-
- }
-
- @Provides("A")
- static class ProvidesA extends Filter {
-
- }
-
- @Provides("B")
- static class ProvidesB extends Filter {
-
- }
-
- @Before("A")
- static class BeforeA extends Filter {
-
- }
-
- @After("A")
- static class AfterA extends Filter {
-
- }
-
- @Before("*")
- @Provides("BeforeAll")
- static class BeforeAll extends Filter {
-
- }
-
- @After("*")
- @Provides("AfterAll")
- static class AfterAll extends Filter {
-
- }
-
- @Before({ "BeforeAll", "*" })
- static class BeforeBeforeAll extends Filter {
-
- }
-
- @After({ "AfterAll", "*" })
- static class AfterAfterAll extends Filter {
-
- }
-
- static class ExtendsProvidesA extends ProvidesA {
-
- }
-
- @Provides("ExtendsA")
- static class ProvidesA_and_ProvidesExtendsA extends ProvidesA {
-
- }
-
- @Before("B")
- static class BeforeA_and_BeforeB extends BeforeA {
-
- }
-
- @Test
- public void build_empty_chain() {
- Chain<Filter> chain = getChain().build();
- assertTrue(chain.isEmpty());
- assertEquals("myChain", chain.id());
- }
-
- boolean equalOrder(Iterator<Filter> a, Iterator<Filter> b) {
- while (a.hasNext() && b.hasNext()) {
- if ( ! a.next().equals(b.next())) return false;
- }
- return a.hasNext() == b.hasNext();
- }
-
- @Test
- public void filters_without_dependencies_are_not_reordered() {
- List<Filter> filters = new ArrayList<>();
-
- ChainBuilder<Filter> chain = new ChainBuilder<>("myChain");
- for (int i = 0; i < 10; ++i) {
- Filter filter = new Filter();
- filters.add(filter);
- chain.add(filter);
- }
-
- assertTrue(equalOrder(chain.build().iterator(), filters.iterator()));
- }
-
- @Test(expected = ChainCycleException.class)
- public void cycles_are_detected() {
- Filter a = new Filter();
- Filter b = new Filter();
-
- getChain().add(b, before(a)).add(a, before(b)).build();
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void adding_same_instance_twice_is_illegal() {
- Filter a = new Filter();
-
- getChain().add(a).add(a).build();
- }
-
- @Test
- public void before_instance() {
- Filter a = new Filter();
- Filter b = new Filter();
-
- Chain<Filter> chain = getChain().
- add(b).add(a, before(b)).build();
-
- assertEquals(new Chain<>("myChain", a, b), chain);
- }
-
- @Test
- public void after_instance() {
- Filter a = new Filter();
- Filter b = new Filter();
-
- Chain<Filter> chain = getChain().
- add(b, after(a)).add(a).build();
-
- assertEquals(new Chain<>("myChain", a, b), chain);
- }
-
- @Test
- public void before_class() {
- Filter a = new FilterA();
- Filter b = new FilterB();
-
- Chain<Filter> chain = getChain().
- add(b).add(a, before(b.getClass())).build();
-
- assertEquals(new Chain<>("myChain", a, b), chain);
- }
-
- @Test
- public void after_class() {
- Filter a = new FilterA();
- Filter b = new FilterB();
-
- Chain<Filter> chain = getChain().
- add(b, after(a.getClass())).add(a).build();
-
- assertEquals(new Chain<>("myChain", a, b), chain);
- }
-
- @Test
- public void before_subclass() {
- Filter a = new FilterA();
- Filter b = new FilterExtendsB();
-
- Chain<Filter> chain = getChain().
- add(b).add(a, before(FilterB.class)).build();
-
- assertEquals(new Chain<>("myChain", a, b), chain);
- }
-
- @Test
- public void after_subclass() {
- Filter a = new FilterExtendsA();
- Filter b = new FilterB();
-
- Chain<Filter> chain = getChain().
- add(b, after(FilterA.class)).add(a).build();
-
- assertEquals(new Chain<>("myChain", a, b), chain);
- }
-
- @Test
- public void before_provided_name() {
- Filter a = new Filter();
- Filter b = new Filter();
-
- Chain<Filter> chain = getChain().
- add(b, provides("B")).add(a, before("B")).build();
-
- assertEquals(new Chain<>("myChain", a, b), chain);
- }
-
- @Test
- public void after_provided_name() {
- Filter a = new Filter();
- Filter b = new Filter();
-
- Chain<Filter> chain = getChain().
- add(b, after("A")).add(a, provides("A")).build();
-
- assertEquals(new Chain<>("myChain", a, b), chain);
- }
-
- @Test
- public void before_provided_name_in_annotations() {
- Filter providesA = new ProvidesA();
- Filter beforeA = new BeforeA();
-
- Chain<Filter> chain = getChain().
- add(providesA).add(beforeA).build();
-
- assertEquals(new Chain<>("myChain", beforeA, providesA), chain);
- }
-
- @Test
- public void after_provided_name_in_annotations() {
- Filter providesA = new ProvidesA();
- Filter afterA = new AfterA();
-
- Chain<Filter> chain = getChain().
- add(afterA).add(providesA).build();
-
- assertEquals(new Chain<>("myChain", providesA, afterA), chain);
- }
-
- @Test
- public void before_all() {
- Filter a = new Filter();
- Filter b = new Filter();
-
- Chain<Filter> chain = getChain().
- add(b).add(a, before("*")).build();
-
- assertEquals(new Chain<>("myChain", a, b), chain);
- }
-
- @Test
- public void after_all() {
- Filter a = new Filter();
- Filter b = new Filter();
-
- Chain<Filter> chain = getChain().
- add(b, after("*")).add(a).build();
-
- assertEquals(new Chain<>("myChain", a, b), chain);
- }
-
- @Test
- public void before_all_annotation() {
- Filter a = new Filter();
- Filter beforeAll = new BeforeAll();
-
- Chain<Filter> chain = getChain().
- add(a).add(beforeAll).build();
-
- assertEquals(new Chain<>("myChain", beforeAll, a), chain);
- }
-
- @Test
- public void after_all_annotation() {
- Filter a = new Filter();
- Filter afterAll = new AfterAll();
-
- Chain<Filter> chain = getChain().
- add(afterAll).add(a).build();
-
- assertEquals(new Chain<>("myChain", a, afterAll), chain);
- }
-
- @Test
- public void before_all_annotated_component_can_be_before_another_component_that_is_also_before_all_annotated() {
- Filter beforeAll = new BeforeAll();
- Filter beforeBeforeAll = new BeforeBeforeAll();
-
- Chain<Filter> chain = getChain().
- add(beforeAll).add(beforeBeforeAll).build();
-
- assertEquals(new Chain<>("myChain", beforeBeforeAll, beforeAll), chain);
- }
-
- @Test
- public void after_all_annotated_component_can_be_after_another_component_that_is_also_after_all_annotated() {
- Filter afterAll = new AfterAll();
- Filter afterAfterAll = new AfterAfterAll();
-
- Chain<Filter> chain = getChain().
- add(afterAfterAll).add(afterAll).build();
-
- assertEquals(new Chain<>("myChain", afterAll, afterAfterAll), chain);
- }
-
- @Test
- public void component_that_is_not_annotated_can_be_before_a_before_all_annotated_component() {
- Filter first = new Filter();
- Filter beforeAll = new BeforeAll();
-
- Chain<Filter> chain = getChain().
- add(beforeAll).add(first, before("BeforeAll")).build();
-
- assertEquals(new Chain<>("myChain", first, beforeAll), chain);
- }
-
- @Test
- public void component_that_is_not_annotated_can_be_after_an_after_all_annotated_component() {
- Filter last = new Filter();
- Filter afterAll = new AfterAll();
-
- Chain<Filter> chain = getChain().
- add(last, after("AfterAll")).add(afterAll).build();
-
- assertEquals(new Chain<>("myChain", afterAll, last), chain);
- }
-
- @Test
- public void class_name_is_always_provided() {
- Filter a = new FilterA();
- Filter b = new FilterB();
-
- Chain<Filter> chain = getChain().
- add(b, after(a.getClass().getName())).add(a).build();
-
- assertEquals(new Chain<>("myChain", a, b), chain);
- }
-
- @Test
- public void provides_annotation_on_superclass_is_inherited_by_subclasses() {
- Filter extendsA = new ExtendsProvidesA();
- Filter first = new FilterA();
- Filter last = new FilterB();
-
- Chain<Filter> chain = getChain().
- add(last, after("A")).add(first, before("A")).add(extendsA).build();
-
- assertEquals(new Chain<>("myChain", first, extendsA, last), chain);
- }
-
- @Test
- public void provides_annotation_on_superclass_is_inherited_by_a_subclass_that_has_its_own_provides_annotation() {
- Filter extendsA = new ProvidesA_and_ProvidesExtendsA();
- Filter first = new FilterA();
- Filter last = new FilterB();
-
- Chain<Filter> chain = getChain().
- add(last, after("A")).add(first, before("ExtendsA")).add(extendsA).build();
-
- assertEquals(new Chain<>("myChain", first, extendsA, last), chain);
- }
-
- @Test
- public void before_annotation_on_superclass_is_inherited_by_a_subclass_that_has_its_own_before_annotation() {
- Filter beforeA_and_beforeB = new BeforeA_and_BeforeB();
- Filter A = new ProvidesA();
- Filter B = new ProvidesB();
-
- Chain<Filter> chain = getChain().
- add(A, before("*")).add(beforeA_and_beforeB).add(B).build();
- assertEquals(new Chain<>("myChain", beforeA_and_beforeB, A, B), chain);
- }
-
- @Test
- public void add_accepts_multiple_dependencies() {
- Filter a = new Filter();
- Filter b = new Filter();
- Filter c = new Filter();
-
- Chain<Filter> chain = getChain().
- add(a).add(c).add(b, after(a), before(c)).build();
-
- assertEquals(new Chain<>("myChain", a, b, c), chain);
- }
-
- private ChainBuilder<Filter> getChain() {
- return new ChainBuilder<>("myChain");
- }
-}
diff --git a/yolean/src/test/java/com/yahoo/yolean/chain/ChainTest.java b/yolean/src/test/java/com/yahoo/yolean/chain/ChainTest.java
deleted file mode 100644
index 84038170f7c..00000000000
--- a/yolean/src/test/java/com/yahoo/yolean/chain/ChainTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.yolean.chain;
-
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-
-/**
- * @author Tony Vaagenes
- */
-public class ChainTest {
-
- public static class Filter {
-
- }
-
- public static class OtherFilter extends Filter {
-
- }
-
- @Test
- public void empty_chain_toString() {
- Chain<Filter> c = new Chain<>("myChain");
- assertEquals("chain 'myChain'{}", c.toString());
- }
-
- @Test
- public void singleton_chain_toString() {
- Chain<Filter> c = new Chain<>("myChain", new Filter());
- assertEquals("chain 'myChain'{ Filter }", c.toString());
- }
-
- @Test
- public void chain_toString() {
- Chain<Filter> c = new Chain<>("myChain", new Filter(), new Filter(), new OtherFilter());
- assertEquals("chain 'myChain'{ Filter -> Filter -> OtherFilter }", c.toString());
- }
-
- @Test
- public void non_equal_due_to_different_components() {
- assertNotEquals(new Chain<>("a", new Filter()), new Chain<>("a", new Filter()));
- }
-
- @Test
- public void non_equal_due_to_different_size_comopnents() {
- assertNotEquals(new Chain<>("a", new Filter()), new Chain<Filter>("a"));
- }
-
- @Test
- public void hashCode_equals() {
- assertEquals(new Chain<>("a").hashCode(), new Chain<Filter>("a").hashCode());
- }
-}
diff --git a/yolean/src/test/java/com/yahoo/yolean/chain/DirectedGraphTest.java b/yolean/src/test/java/com/yahoo/yolean/chain/DirectedGraphTest.java
deleted file mode 100644
index 6b9b29729c7..00000000000
--- a/yolean/src/test/java/com/yahoo/yolean/chain/DirectedGraphTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.yolean.chain;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.util.Arrays;
-
-import static org.junit.Assert.assertTrue;
-
-public class DirectedGraphTest {
-
- private DirectedGraph graph;
- private final Vertex[] v = new Vertex[10];
-
- @Before
- public void setup() {
- for (int i = 0; i < v.length; i++) {
- v[i] = new TestVertex(i);
- }
-
- graph = new DirectedGraph();
- }
-
- @Test
- public void before_all_are_prioritized_first() {
- graph.addVertex(v[0]);
- graph.addBeginningVertex(v[1]);
-
- assertTrue(graph.topologicalSort().containsAll(Arrays.asList(v[1], v[0])));
- }
-
- @Test
- public void vertex_can_be_placed_before_before_all_vertices() {
- graph.addVertex(v[0]);
- graph.addBeginningVertex(v[1]);
- graph.addEdge(v[0], v[1]);
-
- assertTrue(graph.topologicalSort().containsAll(Arrays.asList(v[0], v[1])));
- }
-
- static class TestVertex implements Vertex {
-
- private final int id;
-
- TestVertex(int id) {
- this.id = id;
- }
-
- @Override
- public String toString() {
- return "Vertex{" + id + '}';
- }
- }
-}
diff --git a/yolean/src/test/java/com/yahoo/yolean/chain/EnumeratedIdentitySetTest.java b/yolean/src/test/java/com/yahoo/yolean/chain/EnumeratedIdentitySetTest.java
deleted file mode 100644
index 66b2fc84f39..00000000000
--- a/yolean/src/test/java/com/yahoo/yolean/chain/EnumeratedIdentitySetTest.java
+++ /dev/null
@@ -1,270 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.yolean.chain;
-
-import org.junit.Test;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.IdentityHashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import static java.util.Collections.singleton;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-
-/**
- * Tests for EnumeratedIdentitySet.
- */
-public class EnumeratedIdentitySetTest {
-
- private final List<Element> elements;
-
- public EnumeratedIdentitySetTest() {
- elements = new ArrayList<>();
- for (int i = 0; i < 10; i++) {
- elements.add(new Element());
- }
- }
-
- @Test
- public void size() {
- EnumeratedIdentitySet<Element> set = new EnumeratedIdentitySet<>(elements);
- assertEquals(elements.size(), set.size());
-
- set.add(elements.get(0));
- assertEquals(elements.size(), set.size());
-
- set.remove(elements.get(0));
- assertEquals(elements.size() - 1, set.size());
- }
-
- @Test
- public void isEmpty() {
- EnumeratedIdentitySet<Element> set = new EnumeratedIdentitySet<>();
- assertTrue(set.isEmpty());
-
- set.add(elements.get(0));
- assertFalse(set.isEmpty());
- }
-
- @Test
- public void contains2() {
- EnumeratedIdentitySet<Element> set = new EnumeratedIdentitySet<>(elements);
- assertTrue(set.contains(elements.get(0)));
- assertFalse(set.contains(new Element()));
- }
-
- @Test
- public void iterator() {
- EnumeratedIdentitySet<Element> set = new EnumeratedIdentitySet<>(elements);
-
- IdentityHashMap<Element, Void> collectedElements = new IdentityHashMap<>();
- int count = 0;
- for (Element element : set) {
- collectedElements.put(element, null);
- count++;
- }
-
- assertEquals(count, collectedElements.size());
- assertEquals(elements.size(), collectedElements.size());
-
- for (Element element : elements) {
- assertTrue(collectedElements.containsKey(element));
- }
- }
- private static boolean containsSame(Object a, Collection<?> coll) {
- for (Object b : coll) {
- if (a == b) return true;
- }
- return false;
- }
- private static boolean containsSubsetSame(Collection<?> subSet, Collection<?> superSet) {
- for (Object a : subSet) {
- if ( ! containsSame(a, superSet)) return false;
- }
- return true;
- }
-
- private static boolean containsAllSame(Collection<?> a, Collection<?> b) {
- return containsSubsetSame(a, b) && containsSubsetSame(b, a);
- }
-
- private static <T> Set<T> toIdentitySet(Collection<? extends T> collection) {
- Set<T> identitySet = Collections.newSetFromMap(new IdentityHashMap<>());
- identitySet.addAll(collection);
- return identitySet;
- }
-
- @Test
- public void toArray() {
- EnumeratedIdentitySet<Element> set = new EnumeratedIdentitySet<>(elements);
-
- Object[] array = set.toArray();
- Element[] array2 = set.toArray(new Element[0]);
-
- assertTrue(set.containsAll(Arrays.asList(array)));
- assertTrue(containsAllSame(Arrays.asList(array), set));
- assertTrue(containsAllSame(Arrays.asList(array2), set));
- }
-
- @Test
- public void add() {
- EnumeratedIdentitySet<Element> set = new EnumeratedIdentitySet<>();
- assertTrue(set.add(elements.get(0)));
- assertFalse(set.add(elements.get(0)));
- }
-
- @Test
- public void remove() {
- EnumeratedIdentitySet<Element> set = new EnumeratedIdentitySet<>(elements);
- assertTrue(set.remove(elements.get(0)));
- assertFalse(set.remove(elements.get(0)));
- }
-
- @Test
- public void containsAll() {
- EnumeratedIdentitySet<Element> set = new EnumeratedIdentitySet<>(elements);
- assertTrue(set.containsAll(elements.subList(0, 7)));
- assertTrue(set.containsAll(elements));
-
- List<Element> extendedElements = new ArrayList<>(elements);
- extendedElements.add(new Element());
- assertFalse(set.containsAll(extendedElements));
- }
-
- @Test
- public void addAll() {
- EnumeratedIdentitySet<Element> set = new EnumeratedIdentitySet<>();
- set.addAll(elements);
-
- assertTrue(containsAllSame(set, elements));
- }
-
- @Test
- public void retainAll() {
- Set<Element> set = new EnumeratedIdentitySet<>();
-
- set.addAll(elements.subList(0, 5));
- boolean changed = set.retainAll(toIdentitySet(elements.subList(3, 10)));
-
- assertTrue(changed);
- assertTrue(containsAllSame(set, elements.subList(3, 5)));
-
- changed = set.retainAll(toIdentitySet(elements));
- assertFalse(changed);
- }
-
- @Test
- public void removeAll() {
- EnumeratedIdentitySet<Element> set = new EnumeratedIdentitySet<>(elements);
- set.removeAll(elements.subList(0, 5));
- assertTrue(containsAllSame(set, elements.subList(5, 10)));
- }
-
- @Test
- public void clear() {
- EnumeratedIdentitySet<Element> set = new EnumeratedIdentitySet<>(elements);
- set.clear();
- assertTrue(set.isEmpty());
- }
-
- @Test
- public void removeNulls() {
- Element[] singletonArray = { null, elements.get(0), null };
- assertTrue(containsAllSame(EnumeratedIdentitySet.removeNulls(singletonArray),
- Arrays.asList(elements.get(0))));
-
- Element[] elementsWithNull = new Element[20];
-
- Iterator<Element> iterator = elements.iterator();
-
- copyElementsTo(iterator, elementsWithNull, 2, 1);
- copyElementsTo(iterator, elementsWithNull, 4, 8);
- copyElementsTo(iterator, elementsWithNull, 19, 1);
-
- assertTrue(containsAllSame(EnumeratedIdentitySet.removeNulls(elementsWithNull), elements));
- }
-
- private void copyElementsTo(Iterator<Element> iterator, Element[] array, int startIndex, int numItems) {
- for (int i = 0; i < numItems; i++) {
- array[i + startIndex] = iterator.next();
- }
- }
-
- @Test
- public void renumber_preserves_ordering() {
- EnumeratedIdentitySet<Element> set = new EnumeratedIdentitySet<>();
-
- for (int i = 0; i < 200; i++) {
- set.add(new Element());
- }
-
- set.addAll(elements);
-
- EnumeratedIdentitySet<Element> elementsToPreserve = new EnumeratedIdentitySet<>(elements);
-
- for (Iterator<Element> i = set.iterator(); i.hasNext(); ) {
- if (!elementsToPreserve.contains(i.next())) {
- i.remove();
- }
- }
-
- List<Element> forceRenumber = set.insertionOrderedList();
- assertEquals(elements.size(), forceRenumber.size());
-
- for (int i = 0; i < elements.size(); i++) {
- assertSame(forceRenumber.get(i), elements.get(i));
- }
-
- set.add(new Element());
- assertTrue(containsAllSame(set.numbers(), range(0, 10)));
- }
-
- @Test
- public void renumber_when_empty() {
- EnumeratedIdentitySet<Element> set = new EnumeratedIdentitySet<>(elements);
- for (Iterator<Element> i = set.iterator(); i.hasNext(); ) {
- i.next();
- i.remove();
- }
-
- set.insertionOrderedList();
- assertTrue(set.numbers().isEmpty());
-
- set.add(new Element());
- assertTrue(containsAllSame(set.numbers(), singleton(0)));
- }
-
- private List<Integer> range(int start, int endInclusive) {
- List<Integer> result = new ArrayList<>();
- for (int i = start; i <= endInclusive; i++) {
- result.add(i);
- }
-
- return result;
- }
-
- static class Element {
-
- @Override
- public int hashCode() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean equals(Object obj) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String toString() {
- return "Element@" + System.identityHashCode(this);
- }
- }
-}