First of all thanks very much for all tutorials, I saw The total beginners and Using The Debugger and they are really good tutorials.
Unfortunately I've had problems using The JUnit testing facility when I'm cheking statict fields, maybe I've made a mistake but at the moment I don't see anyone.
The problem is when I run JUnit test, this sends a mistake in first assertEquals:
Function getIdEmp() return one unique id_emp for an Employer, also there's a static field wich count the total employers in the company here is a bite of code:
public class Employer extends Persona{
private int id_emp;
junit.framework.AssertionFailedError: expected:<1> but was:<4>
at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.Assert.failNotEquals(Assert.java:280)
at junit.framework.Assert.assertEquals(Assert.java:64)
at junit.framework.Assert.assertEquals(Assert.java:198)
at junit.framework.Assert.assertEquals(Assert.java:204)
at com.domi.empresa.TestEmpoloyer.testGetId(TestEmpoloyer.java:27)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Runinig The program as Java aplication (I added a main method): These are the results as might be expected:
Empleado #1 Panzer A
Empleado #2 Domingo B
Empleado #3 Mary C
where #1, #2 and #3 are the id_emp for each employeer.
So JUnit said me:
expected:<1> but was:<4> (talking about id_emp)
And Java aplications results said me:
id_emp = 1
id_emp = 2
id_emp = 3
/**
* Abstract Class Employer, Shows and handles special methods to represent an Employer
* Some methods are abstract.
* @author Domingo
* @version 1
* *
*/
public class Employer extends Persona{
private int id_emp;
private GregorianCalendar date_contract = null;
//Statics section
private static int id_seed;
/**
* Constructor Employer
* @param name
* @param first_name
*/
public Employer (String name, String first_name){
super(name, first_name);
date_contract = new GregorianCalendar();
id_emp = ++id_seed;
}
/**
* Method toString return String with information about Employer:
* "Empleado #300 Domingo Balderas\nMarital status: Single\nBirthday: 1975/1/1\nIngreso: 2009/6/1"
* @return
*/
@Override public String toString(){
int month_plus1 = date_contract.get(Calendar.MONTH) + 1;
/**
* Method getID return id from Employer, this is unique and must be more than 0
* @return id
*/
public int getIdEmp() {
return id_emp;
}
/**
* Method getDate_contract() retrun in short format date of contract employment yyyy/mm/dd
* @return String contract date
*/
public String getDate_contract(){
int year = date_contract.get(Calendar.YEAR);
int month = date_contract.get(Calendar.MONTH);
int day = date_contract.get(Calendar.DAY_OF_MONTH);
return "Contract date was: " + year + "/" + month + "/" + day;
}
/**
* Method <mod>getTotalAge</mod> gets String total-age with years.months.days
* You've worked 51 years 2 months 4 hours 18 minutes 8 seconds.
* @return String
* */
public String getTimeWorking(){
StringBuffer age_format = new StringBuffer(75);
/**
* @author Domingo Balderas
* @version 27 Julio 2008
* Clase <mod>Persona</mod>, manaeja las características básicas de una persona.
* name
* first name
* second name
* age - birth date
* marital status
*
* */
public class Persona {
//Private section
private String name;
private String first_name;
private MaritalStatus marital_status;
private GregorianCalendar birth_date;
//Final section
protected final int LIKEN_YEAR = 0;
/*protected final int LIKEN_MONTH = 1;
protected final int LIKEN_DAY = 2;
protected final int LIKEN_MINUTE = 3; */
protected final int LIKEN_SECOND = 4;
protected final int[] DATE_CONSTANTS = {Calendar.YEAR, Calendar.MONTH, Calendar.DAY_OF_MONTH,
Calendar.HOUR, Calendar.MINUTE, Calendar.SECOND};
/**
* Constructor default
* @param id unique identity for one Person
* @param name
* @param first_name name of one person
* @param birth_date date of birthday
* @param marital_status
* 0 single
* 1 married
* 2 widower
* 3 other
* */
public Persona(String name, String first_name){
this.marital_status = MaritalStatus.OTHER;
this.name = name;
this.first_name = first_name;
this.birth_date = new GregorianCalendar();
this.today = new GregorianCalendar();
}
/**
* Method toString()
*/
public String toString(){
int month_plus1 = birth_date.get(Calendar.MONTH) + 1;
/**
* Method <mod>getMarital_status</mod> get marital status in code.
* @return only one from:
* 0 single
* 1 married
* 2 widower
* 3 other
* */
public MaritalStatus getMarital_status() {
return marital_status;
}
/**
* Method <mod>setMarital_status</mod> set marital status for one person.
* @param marital
* 0 single
* 1 married
* 2 widower
* 3 other
* */
public void setMarital_status(MaritalStatus marital_status) {
this.marital_status = marital_status;
}
/**
* Method <mod>DecoMaritalStatus</mod> get marital status in String.
* @param marital
* 0 single
* 1 married
* 2 widower
* 3 other
* */
public String DecoMaritalStatus(){
if (this.marital_status == MaritalStatus.SINGLE) {
return "Single";
}else if(this.marital_status == MaritalStatus.MARRIED){
return "Married";
}else if(this.marital_status == MaritalStatus.WIDOWER){
return "Widower";
}else if(this.marital_status == MaritalStatus.OTHER){
return "Other";
}
return "Other";
}
/**
* Method <mod>getAge</mod> get birth for one person.
* @return age
* */
public int getAge() {
return today.get(Calendar.YEAR)-birth_date.get(Calendar.YEAR);
}
/**
* Method <mod>getTotalAge</mod> gets String total-age in the next format:
* You are 51 years 2 months 4 hours 18 minutes 8 seconds old.
* @return String
* */
public String getTotalAge() {
StringBuffer age_format = new StringBuffer(75);
/**
* Method <mod>prepareCalendar</mod> prepares String with....
* @param typeC
* @return
* */
public final int PrepareCalendar(int typeC, int liken_today, int liken_birthday){
// Parameters values are between 0 and 4
/**
* Method <mod>setBirth_date</mod> set birth date for one person.
* @param year
* @param month
* @param day
* */
public void setBirth_date(int year, int month, int day) {
this.birth_date = new GregorianCalendar(year, month, day);
}
/**
* Method getName return name of a person
* @return name
*/
public String getName() {
return name;
}
/**
* Method getFirst_name return first_name of a person
* @return first_name
*/
public String getFirst_name() {
return first_name;
}
public static void main(String[] args) {
Persona p1 = new Persona("Panzer", "Balderas");
p1.setBirth_date(1975, Calendar.JANUARY, 1);
Persona p2 = new Persona("Domingo", "Balderas");
Hi Mark,
First of all thanks very much for all tutorials, I saw The total beginners and Using The Debugger and they are really good tutorials.
Unfortunately I've had problems using The JUnit testing facility when I'm cheking statict fields, maybe I've made a mistake but at the moment I don't see anyone.
The problem is when I run JUnit test, this sends a mistake in first assertEquals:
//Test getId
public void testGetId(){
setup();
assertEquals(1, e1.getIdEmp());
assertEquals(2, e2.getIdEmp());
assertEquals(3, e3.getIdEmp());
}
Function getIdEmp() return one unique id_emp for an Employer, also there's a static field wich count the total employers in the company here is a bite of code:
public class Employer extends Persona{
private int id_emp;
//Statics section
private static int id_seed=0;
public Employer (String name, String first_name){
super(name, first_name);
id_emp = ++id_seed;
}
.......
Runing JUnit: this is the trace:
junit.framework.AssertionFailedError: expected:<1> but was:<4>
at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.Assert.failNotEquals(Assert.java:280)
at junit.framework.Assert.assertEquals(Assert.java:64)
at junit.framework.Assert.assertEquals(Assert.java:198)
at junit.framework.Assert.assertEquals(Assert.java:204)
at com.domi.empresa.TestEmpoloyer.testGetId(TestEmpoloyer.java:27)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Runinig The program as Java aplication (I added a main method): These are the results as might be expected:
Empleado #1 Panzer A
Empleado #2 Domingo B
Empleado #3 Mary C
where #1, #2 and #3 are the id_emp for each employeer.
So JUnit said me:
expected:<1> but was:<4> (talking about id_emp)
And Java aplications results said me:
id_emp = 1
id_emp = 2
id_emp = 3
What do you thing about? Is there a mistake here?
Thanks in advance.
All code is here:
package com.domi.empresa;
import java.util.Calendar;
import java.util.GregorianCalendar;
/**
* Abstract Class Employer, Shows and handles special methods to represent an Employer
* Some methods are abstract.
* @author Domingo
* @version 1
* *
*/
public class Employer extends Persona{
private int id_emp;
private GregorianCalendar date_contract = null;
//Statics section
private static int id_seed;
/**
* Constructor Employer
* @param name
* @param first_name
*/
public Employer (String name, String first_name){
super(name, first_name);
date_contract = new GregorianCalendar();
id_emp = ++id_seed;
}
/**
* Method toString return String with information about Employer:
* "Empleado #300 Domingo Balderas\nMarital status: Single\nBirthday: 1975/1/1\nIngreso: 2009/6/1"
* @return
*/
@Override public String toString(){
int month_plus1 = date_contract.get(Calendar.MONTH) + 1;
return "Empleado #" + this.id_emp + " " + super.toString() + "\nIngreso: " +
date_contract.get(Calendar.YEAR) + "/" +
month_plus1 + "/" +
date_contract.get(Calendar.DAY_OF_MONTH);
}
/**
* Method getID return id from Employer, this is unique and must be more than 0
* @return id
*/
public int getIdEmp() {
return id_emp;
}
/**
* Method getDate_contract() retrun in short format date of contract employment yyyy/mm/dd
* @return String contract date
*/
public String getDate_contract(){
int year = date_contract.get(Calendar.YEAR);
int month = date_contract.get(Calendar.MONTH);
int day = date_contract.get(Calendar.DAY_OF_MONTH);
return "Contract date was: " + year + "/" + month + "/" + day;
}
/**
* Method <mod>getTotalAge</mod> gets String total-age with years.months.days
* You've worked 51 years 2 months 4 hours 18 minutes 8 seconds.
* @return String
* */
public String getTimeWorking(){
StringBuffer age_format = new StringBuffer(75);
if ( date_contract.compareTo(today) < 0 ) {
GregorianCalendar birthday = (GregorianCalendar) date_contract.clone();
GregorianCalendar temp_date_contract = date_contract;
date_contract = birthday;
PrepareCalendar(LIKEN_SECOND, today.get(DATE_CONSTANTS[LIKEN_SECOND]),
date_contract.get(DATE_CONSTANTS[LIKEN_SECOND]));
age_format.append("You've worked ");
age_format.append(today.get(Calendar.YEAR)-date_contract.get(Calendar.YEAR));
age_format.append(" years ");
age_format.append(today.get(Calendar.MONTH)-date_contract.get(Calendar.MONTH) + 1);
age_format.append(" months ");
age_format.append(today.get(Calendar.DAY_OF_MONTH)-date_contract.get(Calendar.DAY_OF_MONTH));
age_format.append(" days ");
age_format.append(today.get(Calendar.HOUR_OF_DAY)-date_contract.get(Calendar.HOUR_OF_DAY));
age_format.append(" hours ");
age_format.append(today.get(Calendar.MINUTE)-date_contract.get(Calendar.MINUTE));
age_format.append(" minutes ");
age_format.append(today.get(Calendar.SECOND)-date_contract.get(Calendar.SECOND));
date_contract = temp_date_contract;
}
else{
return "Wrong Date";
}
return age_format.toString();
}
/**
* Static Method setId return a static value for each Employe
* @return static int
*/
public static void setId(){
//id_emp = id_seed;
id_seed++;
}
/**
* Static method main it's only for a probe of the clase Employer
*/
public static void main(String[] argv){
Employer e1 = new Employer("Panzer", "Balderas");
e1.setBirth_date(1975, Calendar.JANUARY, 1);
Employer e2 = new Employer("Domingo", "Balderas");
Employer e3 = new Employer("Mariana", "Badillo");
System.out.println(e1.getIdEmp());
System.out.println(e2.getIdEmp());
System.out.println(e3.getIdEmp());
System.out.println(e1);
System.out.println(e2);
System.out.println(e3);
}
//------------------------------------------------------------------------------------------
// abstract section method
//--------------------------------------------------------------------------------------------
//public abstract String getDescription();
}
package com.domi.empresa;
import java.util.*;
enum MaritalStatus{SINGLE, MARRIED, WIDOWER, OTHER}
/**
* @author Domingo Balderas
* @version 27 Julio 2008
* Clase <mod>Persona</mod>, manaeja las características básicas de una persona.
* name
* first name
* second name
* age - birth date
* marital status
*
* */
public class Persona {
//Private section
private String name;
private String first_name;
private MaritalStatus marital_status;
private GregorianCalendar birth_date;
//Protected section
protected GregorianCalendar today = null;
//Final section
protected final int LIKEN_YEAR = 0;
/*protected final int LIKEN_MONTH = 1;
protected final int LIKEN_DAY = 2;
protected final int LIKEN_MINUTE = 3; */
protected final int LIKEN_SECOND = 4;
protected final int[] DATE_CONSTANTS = {Calendar.YEAR, Calendar.MONTH, Calendar.DAY_OF_MONTH,
Calendar.HOUR, Calendar.MINUTE, Calendar.SECOND};
/**
* Constructor default
* @param id unique identity for one Person
* @param name
* @param first_name name of one person
* @param birth_date date of birthday
* @param marital_status
* 0 single
* 1 married
* 2 widower
* 3 other
* */
public Persona(String name, String first_name){
this.marital_status = MaritalStatus.OTHER;
this.name = name;
this.first_name = first_name;
this.birth_date = new GregorianCalendar();
this.today = new GregorianCalendar();
}
/**
* Method toString()
*/
public String toString(){
int month_plus1 = birth_date.get(Calendar.MONTH) + 1;
return name + " " + first_name + "\nMarital status: " +
DecoMaritalStatus() + "\nBirthday: " +
birth_date.get(Calendar.YEAR) + "/" +
month_plus1 + "/" +
birth_date.get(Calendar.DAY_OF_MONTH);
}
/**
* Method <mod>getMarital_status</mod> get marital status in code.
* @return only one from:
* 0 single
* 1 married
* 2 widower
* 3 other
* */
public MaritalStatus getMarital_status() {
return marital_status;
}
/**
* Method <mod>setMarital_status</mod> set marital status for one person.
* @param marital
* 0 single
* 1 married
* 2 widower
* 3 other
* */
public void setMarital_status(MaritalStatus marital_status) {
this.marital_status = marital_status;
}
/**
* Method <mod>DecoMaritalStatus</mod> get marital status in String.
* @param marital
* 0 single
* 1 married
* 2 widower
* 3 other
* */
public String DecoMaritalStatus(){
if (this.marital_status == MaritalStatus.SINGLE) {
return "Single";
}else if(this.marital_status == MaritalStatus.MARRIED){
return "Married";
}else if(this.marital_status == MaritalStatus.WIDOWER){
return "Widower";
}else if(this.marital_status == MaritalStatus.OTHER){
return "Other";
}
return "Other";
}
/**
* Method <mod>getAge</mod> get birth for one person.
* @return age
* */
public int getAge() {
return today.get(Calendar.YEAR)-birth_date.get(Calendar.YEAR);
}
/**
* Method <mod>getTotalAge</mod> gets String total-age in the next format:
* You are 51 years 2 months 4 hours 18 minutes 8 seconds old.
* @return String
* */
public String getTotalAge() {
StringBuffer age_format = new StringBuffer(75);
if ( birth_date.compareTo(today) < 0 ) {
GregorianCalendar birthday = (GregorianCalendar) birth_date.clone();
GregorianCalendar temp_birth_date = birth_date;
birth_date = birthday;
PrepareCalendar(LIKEN_SECOND, today.get(DATE_CONSTANTS[LIKEN_SECOND]),
birth_date.get(DATE_CONSTANTS[LIKEN_SECOND]));
age_format.append("You are ");
age_format.append(today.get(Calendar.YEAR)-birth_date.get(Calendar.YEAR));
age_format.append(" years ");
age_format.append(today.get(Calendar.MONTH)-birth_date.get(Calendar.MONTH) + 1);
age_format.append(" months ");
age_format.append(today.get(Calendar.DAY_OF_MONTH)-birth_date.get(Calendar.DAY_OF_MONTH));
age_format.append(" days ");
age_format.append(today.get(Calendar.HOUR_OF_DAY)-birth_date.get(Calendar.HOUR_OF_DAY));
age_format.append(" hours ");
age_format.append(today.get(Calendar.MINUTE)-birth_date.get(Calendar.MINUTE));
age_format.append(" minutes ");
age_format.append(today.get(Calendar.SECOND)-birth_date.get(Calendar.SECOND));
age_format.append(" seconds old.");
birth_date = temp_birth_date;
}
else{
return "Wrong Date";
}
return age_format.toString();
}
/**
* Method <mod>prepareCalendar</mod> prepares String with....
* @param typeC
* @return
* */
public final int PrepareCalendar(int typeC, int liken_today, int liken_birthday){
// Parameters values are between 0 and 4
if (typeC == LIKEN_YEAR) {
return 1;
}else if(liken_today < liken_birthday){
--typeC;
today.roll(DATE_CONSTANTS[typeC], -1);
PrepareCalendar(typeC, today.get(DATE_CONSTANTS[typeC]),birth_date.get(DATE_CONSTANTS[typeC]));
}else{
--typeC;
PrepareCalendar(typeC, today.get(DATE_CONSTANTS[typeC]),birth_date.get(DATE_CONSTANTS[typeC]));
}
return 1;
}
/**
* Method <mod>setBirth_date</mod> set birth date for one person.
* @param year
* @param month
* @param day
* */
public void setBirth_date(int year, int month, int day) {
this.birth_date = new GregorianCalendar(year, month, day);
}
/**
* Method getName return name of a person
* @return name
*/
public String getName() {
return name;
}
/**
* Method getFirst_name return first_name of a person
* @return first_name
*/
public String getFirst_name() {
return first_name;
}
public static void main(String[] args) {
Persona p1 = new Persona("Panzer", "Balderas");
p1.setBirth_date(1975, Calendar.JANUARY, 1);
Persona p2 = new Persona("Domingo", "Balderas");
System.out.println(p1);
System.out.println(p2);
}
//------------------------------------------------------------------------------------------
// abstract section method
//----------------------------------------------------------------------------------------------
//public abstract String getDescription();
}
-------------------------- Test ----------------------------------------------------
package com.domi.empresa;
import java.util.Calendar;
import java.util.GregorianCalendar;
import junit.framework.TestCase;
public class TestEmpoloyer extends TestCase {
private Employer e1;
private Employer e2;
private Employer e3;
private GregorianCalendar gc;
private int day;
private int month;
private int year;
//Probamos los constructores
public void testEmployer(){
setup();
String tmp = year + "/" + month + "/" + day;
assertEquals("Empleado #1 Domingo Balderas\nMarital status: Other\nBirthday: 1975/1/1\nIngreso: " + tmp, e1.toString());
}
//Test getId
public void testGetId(){
setup();
assertEquals(1, e1.getIdEmp());
assertEquals(2, e2.getIdEmp());
assertEquals(3, e3.getIdEmp());
}
//Test getTimeWorking
public void TestGetTimeWorking(){
setup();
assertEquals("You've worked 0 years 0 hours 0 minutes 1 seconds", e1.getTimeWorking());
}
private void setup(){
gc = new GregorianCalendar();
day = gc.get(Calendar.DAY_OF_MONTH);
month = gc.get(Calendar.MONTH)+1;
year = gc.get(Calendar.YEAR);
e1 = new Employer("Domingo", "Balderas");
e1.setBirth_date(1975, Calendar.JANUARY, 1);
e2 = new Employer("Panzer", "Balderas");
e2.setBirth_date(2001, Calendar.JUNE, 15);
e3 = new Employer("Mariana", "Balderas");
}
}
package com.domi.empresa;
import java.util.Calendar;
import junit.framework.TestCase;
public class PersonaTest extends TestCase {
private Persona p1;
private Persona p2;
//Pruebas de constructores:
// public void testPersona(){
// Persona p = new Persona("Domingo", "Balderas");
//
// }
//Pruebas de metodos gets:
public void testgetMarital_status() {
setup();
assertEquals(MaritalStatus.OTHER, p1.getMarital_status());
}
public void testGetAge(){
setup();
assertEquals(0,p1.getAge());
}
/* public void testGetTotalAge(){
setup();
p1.setBirth_date(1975,1,1);
assertEquals("You are 33 years 6 months 1 days 2 houres 30 minutes 10 secons old.", p1.getTotalAge());
p2.setBirth_date(1980, 8, 2);
assertEquals("28.0.0", p2.getTotalAge());
} */
public void testGetName(){
setup();
assertEquals("Alguien", p2.getName());
assertEquals("PorAhí", p2.getFirst_name());
}
//Pruebas de metodos sets:
public void testSetMarital_status(){
setup();
p1.setMarital_status(MaritalStatus.MARRIED);
assertEquals(MaritalStatus.MARRIED, p1.getMarital_status());
}
public void testSetBirth_date(){
setup();
p1.setBirth_date(1975,1,1);
p2.setBirth_date(1980, 7, 28);
assertEquals("Birthday-Date didn't set correctly", 33, p1.getAge());
assertEquals("Birthday-Date didn't set correctly", 28, p2.getAge());
}
public void testToString(){
setup();
p1.setBirth_date(1975,Calendar.JANUARY,1);
p1.setMarital_status(MaritalStatus.SINGLE);
assertEquals("Domingo Balderas\nMarital status: Single\nBirthday: 1975/1/1", p1.toString());
}
//Setup Class
private void setup() {
p1 = new Persona("Domingo", "Balderas");
p2 = new Persona("Alguien", "PorAhí");
}
}