Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
android_20250623
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
android_20250623
Commits
f19fdff9
Commit
f19fdff9
authored
Jun 24, 2025
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Klasa Rate i testy
parent
ae401679
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
138 additions
and
0 deletions
+138
-0
deploymentTargetSelector.xml
Projekt4/.idea/deploymentTargetSelector.xml
+11
-0
Rate.java
Projekt4/app/src/main/java/com/example/waluty/Rate.java
+55
-0
RateTest.java
Projekt4/app/src/test/java/com/example/waluty/RateTest.java
+72
-0
No files found.
Projekt4/.idea/deploymentTargetSelector.xml
0 → 100644
View file @
f19fdff9
<?xml version="1.0" encoding="UTF-8"?>
<project
version=
"4"
>
<component
name=
"deploymentTargetSelector"
>
<selectionStates>
<SelectionState
runConfigName=
"app"
>
<option
name=
"selectionMode"
value=
"DROPDOWN"
/>
</SelectionState>
</selectionStates>
</component>
</project>
\ No newline at end of file
Projekt4/app/src/main/java/com/example/waluty/Rate.java
0 → 100644
View file @
f19fdff9
package
com
.
example
.
waluty
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.Objects
;
public
class
Rate
{
private
final
String
code
;
private
final
String
currency
;
private
final
BigDecimal
mid
;
public
Rate
(
String
code
,
String
currency
,
BigDecimal
mid
)
{
this
.
code
=
code
;
this
.
currency
=
currency
;
this
.
mid
=
mid
;
}
public
String
getCode
()
{
return
code
;
}
public
String
getCurrency
()
{
return
currency
;
}
public
BigDecimal
getMid
()
{
return
mid
;
}
@Override
public
String
toString
()
{
return
code
+
" ("
+
currency
+
"): "
+
mid
;
}
@Override
public
boolean
equals
(
Object
o
)
{
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
return
false
;
Rate
rate
=
(
Rate
)
o
;
return
Objects
.
equals
(
code
,
rate
.
code
)
&&
Objects
.
equals
(
currency
,
rate
.
currency
)
&&
Objects
.
equals
(
mid
,
rate
.
mid
);
}
@Override
public
int
hashCode
()
{
return
Objects
.
hash
(
code
,
currency
,
mid
);
}
public
BigDecimal
przeliczNaZlote
(
BigDecimal
kwota
)
{
return
kwota
.
multiply
(
mid
).
setScale
(
2
,
RoundingMode
.
HALF_EVEN
);
}
public
BigDecimal
przeliczNaWalute
(
BigDecimal
kwota
)
{
// w przypadku dzielenie od razu podajemy oczekiwaną precyzję i sposób zaokrąglania
return
kwota
.
divide
(
mid
,
2
,
RoundingMode
.
HALF_EVEN
);
}
}
Projekt4/app/src/test/java/com/example/waluty/RateTest.java
0 → 100644
View file @
f19fdff9
package
com
.
example
.
waluty
;
import
static
org
.
junit
.
Assert
.*;
import
org.junit.Before
;
import
org.junit.Test
;
import
java.math.BigDecimal
;
public
class
RateTest
{
public
static
final
BigDecimal
KURS_DOLARA
=
new
BigDecimal
(
"4.0000"
);
private
Rate
rate1
;
@Before
public
void
setUp
()
{
rate1
=
new
Rate
(
"USD"
,
"dolar"
,
KURS_DOLARA
);
}
@Test
public
void
testGetters
()
{
assertEquals
(
"USD"
,
rate1
.
getCode
());
assertEquals
(
"dolar"
,
rate1
.
getCurrency
());
assertEquals
(
KURS_DOLARA
,
rate1
.
getMid
());
}
@Test
public
void
testToString
()
{
assertEquals
(
"USD (dolar): 4.0000"
,
rate1
.
toString
());
}
@Test
public
void
testPrzeliczNaZlote
()
{
BigDecimal
kwota
=
new
BigDecimal
(
"1000.00"
);
BigDecimal
oczekiwanyWynik
=
new
BigDecimal
(
"4000.00"
);
BigDecimal
wynik
=
rate1
.
przeliczNaZlote
(
kwota
);
// sprawdzenie równości "technicznej", uwzględnia także informację o precyzji
assertEquals
(
oczekiwanyWynik
,
wynik
);
// sprawdzenie róności matematycznej - nie bierze pod uwagę precyzji:
// assert oczekiwanyWynik.compareTo(wynik) == 0;
}
@Test
public
void
testPrzeliczNaZlote2
()
{
Rate
euro
=
new
Rate
(
"EUR"
,
"euro"
,
new
BigDecimal
(
"4.3333"
));
BigDecimal
kwota
=
new
BigDecimal
(
"2.00"
);
BigDecimal
wynik
=
euro
.
przeliczNaZlote
(
kwota
);
BigDecimal
oczekiwanyWynik
=
new
BigDecimal
(
"8.67"
);
assertEquals
(
oczekiwanyWynik
,
wynik
);
}
@Test
public
void
testPrzeliczNaWalute
()
{
BigDecimal
kwota
=
new
BigDecimal
(
"4000.00"
);
BigDecimal
wynik
=
rate1
.
przeliczNaWalute
(
kwota
);
BigDecimal
oczekiwanyWynik
=
new
BigDecimal
(
"1000.00"
);
assertEquals
(
oczekiwanyWynik
,
wynik
);
}
@Test
public
void
testPrzeliczNaWaluteZaokraglanie
()
{
Rate
trzy
=
new
Rate
(
"TRI"
,
"waluta trzy"
,
new
BigDecimal
(
"3.0000"
));
BigDecimal
kwota
=
new
BigDecimal
(
"2000.00"
);
BigDecimal
wynik
=
trzy
.
przeliczNaWalute
(
kwota
);
BigDecimal
oczekiwanyWynik
=
new
BigDecimal
(
"666.67"
);
assertEquals
(
oczekiwanyWynik
,
wynik
);
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment