コード例 #1
0
        public void Did_TransactionDatabase_CreateUniqueItemList_Populates_Correct()
        {
            var transactions = new TransactionDatabase();

            transactions.AddTransaction(new Transaction("A,B,C,D"));
            transactions.AddTransaction(new Transaction("A,B,C,A"));
            transactions.AddTransaction(new Transaction("A,B"));
            transactions.AddTransaction(new Transaction("A,B,C"));
            transactions.CreateUniqueItemsList();
            Assert.AreEqual(4, transactions.UniqueItems.Items.Count, "UniqueItemsList populates incorrectly");
        }
コード例 #2
0
        public void Did_TransactionDatabase_Support_Returns_Correct()
        {
            var transactions = new TransactionDatabase();

            transactions.AddTransaction(new Transaction("A,B,C,D"));
            transactions.AddTransaction(new Transaction("A,B,C,D,A"));
            transactions.AddTransaction(new Transaction("A,B"));
            transactions.AddTransaction(new Transaction("A,B,C"));
            var support = transactions.GetSupportOfTransaction(new Transaction("A,B,C"));

            Assert.AreEqual(0.75, support, "GetSupportOfTransaction is not equals to 0.75");
        }
コード例 #3
0
        public void Did_TransactionDatabase_Conviction_Returns_Correct()
        {
            var transactions = new TransactionDatabase();

            transactions.AddTransaction(new Transaction("A,B,C,D"));
            transactions.AddTransaction(new Transaction("A,B,C,A"));
            transactions.AddTransaction(new Transaction("A,B"));
            transactions.AddTransaction(new Transaction("A,B,C"));
            var conviction = transactions.GetConvictionOfTransactions(new Transaction("A,B"), new Transaction("D"));

            Assert.AreEqual(1, conviction, "GetConvictionOfTransactions is not equals to 1");

            conviction = transactions.GetConvictionOfTransactions(new Transaction("A,B"), new Transaction("A,B"));
            Assert.AreEqual(double.NaN, conviction, "GetConvictionOfTransactions is not equals to NaN");
        }
コード例 #4
0
        public void Did_TransactionDatabase_Lift_Returns_Correct()
        {
            var transactions = new TransactionDatabase();

            transactions.AddTransaction(new Transaction("A,B,C,D"));
            transactions.AddTransaction(new Transaction("A,B,C,A"));
            transactions.AddTransaction(new Transaction("A,B"));
            transactions.AddTransaction(new Transaction("A,B,C"));
            var lift = transactions.GetLiftOfTransactions(new Transaction("A,B"), new Transaction("D"));

            Assert.AreEqual(1, lift, "GetLiftOfTransaction is not equals to 0.25");

            lift = transactions.GetLiftOfTransactions(new Transaction("A,B"), new Transaction("A,B"));
            Assert.AreEqual(1, lift, "GetLiftOfTransaction is not equals to 1");
        }
コード例 #5
0
        public void Did_TransactionDatabase_Confidence_Returns_Correct()
        {
            var transactions = new TransactionDatabase();

            transactions.AddTransaction(new Transaction("A,B,C,D"));
            transactions.AddTransaction(new Transaction("A,B,C,A"));
            transactions.AddTransaction(new Transaction("A,B"));
            transactions.AddTransaction(new Transaction("A,B,C"));
            var support = transactions.GetConfidenceOfTransactions(new Transaction("A,B"), new Transaction("D"));

            Assert.AreEqual(0.25, support, "GetSupportOfTransaction is not equals to 0.25");

            support = transactions.GetConfidenceOfTransactions(new Transaction("A,B"), new Transaction("A,B"));
            Assert.AreEqual(1, support, "GetSupportOfTransaction is not equals to 1");
        }
コード例 #6
0
        public void Did_ItemTransaction_Load_Transactions_From_Transaction_Database()
        {
            var transactions = new TransactionDatabase();

            transactions.AddTransaction(new Transaction("A,B,C,D"));
            transactions.AddTransaction(new Transaction("A,B,C,D,A"));
            transactions.AddTransaction(new Transaction("A,B"));
            transactions.AddTransaction(new Transaction("A,B,C"));


            var itemTransaction = new ItemTransactions();

            itemTransaction.GetTransactionsFromDatabase(transactions);

            Assert.AreEqual(4, itemTransaction.TransactionList.Count, "GetMaxTransactionLength is not equals to 4");
        }
コード例 #7
0
        public void Did_ItemsTransactionList_Load_Transactions_From_Transaction_Database()
        {
            var transactions = new TransactionDatabase();

            transactions.AddTransaction(new Transaction("A,B,C,D"));
            transactions.AddTransaction(new Transaction("A,B,C,D,A"));
            transactions.AddTransaction(new Transaction("A,B"));
            transactions.AddTransaction(new Transaction("A,B,C"));
            var item1    = new Item("A");
            var item2    = new Item("B");
            var itemList = new ItemList();

            itemList.Items.Add(item1);
            itemList.Items.Add(item2);
            var itemsTransactionList = new ItemsTransactionList(itemList);

            itemsTransactionList.AddTransactionsInTransactionDatabaseToList(transactions);

            Assert.AreEqual(4, itemsTransactionList.Transactions.Count, "itemsTransactionList.Transactions.Count is not equals to 1");
        }
コード例 #8
0
        public void Eclat_Calcuates_Transactions_Support_Right()
        {
            var transactions = new TransactionDatabase();

            transactions.AddTransaction(new Transaction("A,B,C,D"));
            transactions.AddTransaction(new Transaction("A,B,C,A"));
            transactions.AddTransaction(new Transaction("A,B"));
            transactions.AddTransaction(new Transaction("A,B,C"));
            transactions.AddTransaction(new Transaction("D"));
            transactions.AddTransaction(new Transaction("E"));
            var eclat = new Eclat(transactions);

            eclat.Run();
            Assert.IsTrue(eclat.IsTransactionSupported(new Transaction("A,B")), "Apriori algorithm did not works right as new Transaction(\"A,B\") is not included in Supported Transactions List");
            Assert.IsFalse(eclat.IsTransactionSupported(new Transaction("D,E")), "Apriori algorithm did not works right as new Transaction(\"D,E\") is included in Supported Transactions List");
        }
コード例 #9
0
        public void Eclat_Creation_Default_Constructor_Name()
        {
            var transactions = new TransactionDatabase();

            transactions.AddTransaction(new Transaction("A,B,C,D"));
            transactions.AddTransaction(new Transaction("A,B,C,A"));
            transactions.AddTransaction(new Transaction("A,B"));
            transactions.AddTransaction(new Transaction("A,B,C"));
            transactions.AddTransaction(new Transaction("D"));
            transactions.AddTransaction(new Transaction("E"));
            var eclat = new Eclat(transactions, 0.2);

            eclat.Run();
            Assert.AreEqual(8, eclat.TransactionCountWithSupport(), "Apriori Algorithm results wrong amount of transaction.");

            eclat = new Eclat(transactions);
            eclat.Run();
            Assert.AreEqual(16, eclat.TransactionCountWithSupport(), "Apriori Algorithm results wrong amount of transaction.");
            Assert.IsTrue(eclat.IsTransactionSupported(new Transaction("A,B")), "Apriori algorithm did not works right as new Transaction(\"A,B\") is not included in Supported Transactions List");
        }