aboutsummaryrefslogtreecommitdiff
path: root/app/src/androidTest/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/androidTest/java/org')
-rwxr-xr-xapp/src/androidTest/java/org/rssin/neurons/FeedSorterTest.java128
-rwxr-xr-xapp/src/androidTest/java/org/rssin/neurons/NeuralNetworkTest.java133
-rw-r--r--app/src/androidTest/java/org/rssin/rss/FeedLoaderTest.java23
3 files changed, 284 insertions, 0 deletions
diff --git a/app/src/androidTest/java/org/rssin/neurons/FeedSorterTest.java b/app/src/androidTest/java/org/rssin/neurons/FeedSorterTest.java
new file mode 100755
index 0000000..a6e3581
--- /dev/null
+++ b/app/src/androidTest/java/org/rssin/neurons/FeedSorterTest.java
@@ -0,0 +1,128 @@
+package org.rssin.neurons;
+
+import android.util.Log;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.rssin.rss.FeedItem;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
+
+public class FeedSorterTest extends TestCase {
+
+ public void testFeedback() throws Exception {
+ Log.d("FeedSorterTest", "Dit is een test");
+ Assert.assertTrue(true);
+ }
+
+ public void testSortItemsByCategory() throws Exception {
+ List<String> gameList = new ArrayList<>();
+ gameList.add("Games");
+ List<String> sportList = new ArrayList<>();
+ sportList.add("Sport");
+
+ FeedItem[] likedItems = new FeedItem[]
+ {
+ new FeedItem("", new Date(), "TITEL", "DESCRIPTION", "", "Randy", gameList, "", "", ""),
+ };
+
+ FeedItem[] dislikedItems = new FeedItem[]
+ {
+ new FeedItem("", new Date(), "TITEL", "DESCRIPTION", "", "Randy", sportList, "", "", ""),
+ };
+
+ FeedSorter s = new FeedSorter();
+
+ //I like games & I hate sports
+ trainNetwork(likedItems, dislikedItems, s);
+
+ FeedItem sportsItem = new FeedItem("", new Date(2014, 1, 1, 1, 2, 1), "SPORT ARTICLE", "DESCRIPTION", "", "Randy", sportList, "", "", "");
+ FeedItem gamesItem = new FeedItem("", new Date(2014, 1, 1, 1, 1, 1), "GAME ARTICLE", "DESCRIPTION", "", "Randy", gameList, "", "", "");
+
+ testSortingOrder(s, sportsItem, gamesItem);
+ }
+
+ public void testSortItemsByTitle() throws Exception {
+ List<String> emptyList = new ArrayList<>();
+
+ FeedItem[] likedItems = new FeedItem[]
+ {
+ new FeedItem("", new Date(), "Video games are cool", "DESCRIPTION", "", "Randy", emptyList, "", "", ""),
+ new FeedItem("", new Date(), "The new video game", "DESCRIPTION", "", "Camil", emptyList, "", "", ""),
+ new FeedItem("", new Date(), "Best games of 2015", "DESCRIPTION", "", "Jos", emptyList, "", "", ""),
+ };
+
+ FeedItem[] dislikedItems = new FeedItem[]
+ {
+ new FeedItem("", new Date(), "Video of a cat", "DESCRIPTION", "", "Randy", emptyList, "", "", ""),
+ new FeedItem("", new Date(), "It's raining", "DESCRIPTION", "", "Joep", emptyList, "", "", ""),
+ new FeedItem("", new Date(), "Shocking video of a cat in the rain.", "DESCRIPTION", "", "Joep", emptyList, "", "", ""),
+ };
+
+ FeedSorter s = new FeedSorter();
+
+ //I like games & I hate sports
+ trainNetwork(likedItems, dislikedItems, s);
+
+ FeedItem dislikedItem = new FeedItem("", new Date(2014, 1, 1, 1, 2, 1), "Another cool video of a cat in the sun.", "DESCRIPTION", "", "Randy", emptyList, "", "", "");
+ FeedItem likedItem = new FeedItem("", new Date(2014, 1, 1, 1, 1, 1), "Coolest retro games", "DESCRIPTION", "", "Jos", emptyList, "", "", "");
+
+ testSortingOrder(s, dislikedItem, likedItem);
+ }
+
+ public void testSortItemsByAuthor() throws Exception {
+ List<String> emptyList = new ArrayList<>();
+
+ FeedItem[] likedItems = new FeedItem[]
+ {
+ new FeedItem("", new Date(), "Best games of 2015", "DESCRIPTION", "", "Jos", emptyList, "", "", ""),
+ new FeedItem("", new Date(), "It's raining cats and dogs!", "DESCRIPTION", "", "Jos", emptyList, "", "", ""),
+ };
+
+ FeedItem[] dislikedItems = new FeedItem[]
+ {
+ new FeedItem("", new Date(), "Video of a cat", "DESCRIPTION", "", "Randy", emptyList, "", "", ""),
+ new FeedItem("", new Date(), "It's raining", "DESCRIPTION", "", "Joep", emptyList, "", "", ""),
+ new FeedItem("", new Date(), "Shocking video of a cat in the rain.", "DESCRIPTION", "", "Joep", emptyList, "", "", ""),
+ new FeedItem("", new Date(), "Video games are cool", "DESCRIPTION", "", "Randy", emptyList, "", "", ""),
+ new FeedItem("", new Date(), "The new video game", "DESCRIPTION", "", "Camil", emptyList, "", "", ""),
+ };
+
+ FeedSorter s = new FeedSorter();
+
+ //I like games & I hate sports
+ trainNetwork(likedItems, dislikedItems, s);
+
+ FeedItem dislikedItem = new FeedItem("", new Date(2014, 1, 1, 1, 2, 1), "Another cool video of a cat in the sun.", "DESCRIPTION", "", "Randy", emptyList, "", "", "");
+ FeedItem likedItem = new FeedItem("", new Date(2014, 1, 1, 1, 1, 1), "Coolest retro games", "DESCRIPTION", "", "Jos", emptyList, "", "", "");
+
+ testSortingOrder(s, dislikedItem, likedItem);
+ }
+
+ private void testSortingOrder(FeedSorter s, FeedItem dislikedItem, FeedItem likedItem) {
+ List<FeedItem> testItems = new LinkedList<>();
+ testItems.add(dislikedItem);
+ testItems.add(likedItem);
+
+ List<FeedItem> sortedItems = s.sortItems(testItems);
+ Assert.assertEquals(sortedItems.get(0), likedItem);
+ Assert.assertEquals(sortedItems.get(1), dislikedItem);
+ }
+
+ private void trainNetwork(FeedItem[] likedItems, FeedItem[] dislikedItems, FeedSorter s) {
+ for(int i = 0; i < 200; i++) {
+ for (FeedItem item : likedItems) {
+ s.feedback(item, Feedback.Like);
+ }
+
+ for (FeedItem item : dislikedItems) {
+ s.feedback(item, Feedback.Dislike);
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/app/src/androidTest/java/org/rssin/neurons/NeuralNetworkTest.java b/app/src/androidTest/java/org/rssin/neurons/NeuralNetworkTest.java
new file mode 100755
index 0000000..57776f3
--- /dev/null
+++ b/app/src/androidTest/java/org/rssin/neurons/NeuralNetworkTest.java
@@ -0,0 +1,133 @@
+package org.rssin.neurons;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+public class NeuralNetworkTest extends TestCase {
+
+ public void testAnd() throws Exception {
+ MultiNeuralNetwork nn = new MultiNeuralNetwork(10, 2);
+ nn.addInput();//bias
+ nn.addInput();//inputA
+ nn.addInput();//inputB
+
+ //Simple AND
+ for (int i = 0; i < 300; i++)
+ {
+ PredictionInterface p1 = nn.computeOutput(new double[] {
+ 1,
+ -1,
+ -1,
+ });
+ p1.learn(-1);
+
+ PredictionInterface p2 = nn.computeOutput(new double[] {
+ 1,
+ -1,
+ 1,
+ });
+ p2.learn(-1);
+
+ PredictionInterface p3 = nn.computeOutput(new double[] {
+ 1,
+ 1,
+ -1,
+ });
+ p3.learn(-1);
+
+ PredictionInterface p4 = nn.computeOutput(new double[] {
+ 1,
+ 1,
+ 1,
+ });
+ p4.learn(1);
+ }
+
+ Assert.assertTrue(nn.computeOutput(new double[] {
+ 1,
+ -1,
+ -1,
+ }).getOutput() < 0);
+
+ Assert.assertTrue(nn.computeOutput(new double[] {
+ 1,
+ 1,
+ -1,
+ }).getOutput() < 0);
+
+ Assert.assertTrue(nn.computeOutput(new double[] {
+ 1,
+ -1,
+ 1,
+ }).getOutput() < 0);
+
+ Assert.assertTrue(nn.computeOutput(new double[] {
+ 1,
+ 1,
+ 1,
+ }).getOutput() > 0);
+ }
+
+ public void testXor() throws Exception {
+ MultiNeuralNetwork nn = new MultiNeuralNetwork(10, 2);
+ nn.addInput();
+ nn.addInput();
+ nn.addInput();
+
+ //Simple AND
+ for (int i = 0; i < 300; i++)
+ {
+ PredictionInterface p1 = nn.computeOutput(new double[] {
+ 1,
+ -1,
+ -1,
+ });
+ p1.learn(-1);
+
+ PredictionInterface p2 = nn.computeOutput(new double[] {
+ 1,
+ -1,
+ 1,
+ });
+ p2.learn(1);
+
+ PredictionInterface p3 = nn.computeOutput(new double[] {
+ 1,
+ 1,
+ -1,
+ });
+ p3.learn(1);
+
+ PredictionInterface p4 = nn.computeOutput(new double[] {
+ 1,
+ 1,
+ 1,
+ });
+ p4.learn(-1);
+ }
+
+ Assert.assertTrue(nn.computeOutput(new double[] {
+ 1,
+ -1,
+ -1,
+ }).getOutput() < 0);
+
+ Assert.assertTrue(nn.computeOutput(new double[] {
+ 1,
+ 1,
+ -1,
+ }).getOutput() > 0);
+
+ Assert.assertTrue(nn.computeOutput(new double[] {
+ 1,
+ -1,
+ 1,
+ }).getOutput() > 0);
+
+ Assert.assertTrue(nn.computeOutput(new double[] {
+ 1,
+ 1,
+ 1,
+ }).getOutput() < 0);
+ }
+} \ No newline at end of file
diff --git a/app/src/androidTest/java/org/rssin/rss/FeedLoaderTest.java b/app/src/androidTest/java/org/rssin/rss/FeedLoaderTest.java
new file mode 100644
index 0000000..f4bbfdd
--- /dev/null
+++ b/app/src/androidTest/java/org/rssin/rss/FeedLoaderTest.java
@@ -0,0 +1,23 @@
+package org.rssin.rss;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import java.net.URL;
+
+/**
+ * Created by Randy on 21-5-2015.
+ */
+public class FeedLoaderTest extends TestCase {
+
+
+ public void testFetchXML() throws Exception {
+ String urlstring = "http://www.pcworld.com/index.rss";
+ URL url = new URL(urlstring);
+ FeedLoader loader = new FeedLoader(url);
+ loader.fetchXML();
+ FeedItem f = loader.getFeed().getPosts().get(0);
+ Assert.assertEquals(f.getTitle(), "Amazon adds local groceries and meals to one-hour Prime Now delivery service");
+ }
+
+} \ No newline at end of file