Browse Source

Initial Commit.

master
D45Hub 3 years ago
parent
commit
d46c7b2bc7
  1. 6
      CDMASignalCalculator/.classpath
  2. 2
      CDMASignalCalculator/.gitignore
  3. 17
      CDMASignalCalculator/.project
  4. 60
      CDMASignalCalculator/src/de/denisthiessen/base/CDMASignalCalculator.java
  5. 48
      CDMASignalCalculator/src/de/denisthiessen/base/CDMASignalResult.java
  6. 36
      CDMASignalCalculator/src/de/denisthiessen/base/SignalCalculatorExecutor.java

6
CDMASignalCalculator/.classpath

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.8.0_211"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>

2
CDMASignalCalculator/.gitignore

@ -0,0 +1,2 @@
/bin/
/.settings/

17
CDMASignalCalculator/.project

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>CDMASignalCalculator</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

60
CDMASignalCalculator/src/de/denisthiessen/base/CDMASignalCalculator.java

@ -0,0 +1,60 @@
package de.denisthiessen.base;
import java.util.List;
public class CDMASignalCalculator
{
private List<Integer> incomingSignal;
public CDMASignalCalculator(List<Integer> incomingList)
{
this.incomingSignal = incomingList;
}
public void addToSignal(List<Integer> addedSignal)
{
checkEqualLengthList(incomingSignal, addedSignal);
for (int i = 0; i < incomingSignal.size(); i++)
{
incomingSignal.set(i, incomingSignal.get(i) + addedSignal.get(i));
}
}
public CDMASignalResult calculateSignalResult(List<Integer> stationCodes)
{
int signalResultValue = calculateSignalResultValue(incomingSignal, stationCodes);
return CDMASignalResult.getSignalValueFromResult(signalResultValue);
}
public String getCurrentSignalValue()
{
return incomingSignal.toString();
}
private int calculateSignalResultValue(List<Integer> signal, List<Integer> station)
{
checkEqualLengthList(signal, station);
int listLength = signal.size();
int result = 0;
for (int i = 0; i < listLength; i++)
{
result += (signal.get(i) * station.get(i));
}
result /= listLength;
return result;
}
private void checkEqualLengthList(List<Integer> signal, List<Integer> station)
{
if (signal.size() != station.size())
{
throw new IllegalArgumentException("Signal and Station are not equally long");
}
}
}

48
CDMASignalCalculator/src/de/denisthiessen/base/CDMASignalResult.java

@ -0,0 +1,48 @@
package de.denisthiessen.base;
public enum CDMASignalResult
{
ONE_SENT(1), ZERO_SENT(-1), NOTHING_SENT(0);
private int signalResult;
private CDMASignalResult(int signalResult)
{
this.signalResult = signalResult;
}
public int getSignalValue()
{
return signalResult;
}
@Override
public String toString()
{
switch (signalResult)
{
case 1:
return "One got sent.";
case 0:
return "Nothing got sent.";
case -1:
return "Zero got sent.";
default:
return "Invalid Signal Result.";
}
}
public static CDMASignalResult getSignalValueFromResult(int signalResult)
{
for (CDMASignalResult iteratedResult : values())
{
if (iteratedResult.getSignalValue() == signalResult)
{
return iteratedResult;
}
}
throw new IllegalArgumentException(
"Signal Result of " + signalResult + " cannot be resolved.");
}
}

36
CDMASignalCalculator/src/de/denisthiessen/base/SignalCalculatorExecutor.java

@ -0,0 +1,36 @@
package de.denisthiessen.base;
import java.util.Arrays;
import java.util.List;
public class SignalCalculatorExecutor
{
public static void main(String[] args)
{
List<Integer> signalList1 = Arrays.asList(0, 0, -2, 2, 0, -2, 0, 2);
List<Integer> signalList2 = Arrays.asList(0, 2, 2, 2, 0, 4, -2, 2);
List<Integer> signalList3 = Arrays.asList(2, 0, 2, -2, 0, 2, 0, 2);
List<Integer> stationList1 = Arrays.asList(-1, -1, -1, 1, 1, -1, 1, 1);
List<Integer> stationList2 = Arrays.asList(-1, -1, 1, -1, 1, 1, 1, -1);
List<Integer> stationList3 = Arrays.asList(-1, 1, -1, 1, 1, 1, -1, -1);
CDMASignalCalculator calculator = new CDMASignalCalculator(signalList1);
System.out.println(calculator.getCurrentSignalValue());
calculator.addToSignal(signalList2);
System.out.println(calculator.getCurrentSignalValue());
calculator.addToSignal(signalList3);
System.out.println(calculator.getCurrentSignalValue());
CDMASignalResult signalResult1 = calculator.calculateSignalResult(stationList1);
CDMASignalResult signalResult2 = calculator.calculateSignalResult(stationList2);
CDMASignalResult signalResult3 = calculator.calculateSignalResult(stationList3);
System.out.println("Signal Result for First List:\n" + signalResult1.toString());
System.out.println("Signal Result for Second List:\n" + signalResult2.toString());
System.out.println("Signal Result for Third List:\n" + signalResult3.toString());
}
}
Loading…
Cancel
Save