/**
  * Test kp_runRecommender returns the same results as the the recommender
  **/
 public function test8()
 {
     kp_resetVisitData();
     try {
         // Set up test data in database
         $testData = new kp_testData();
         $testPostIDs = $testData->insertTestPosts(10);
         $tK = array_keys($testPostIDs);
         // User Group #1
         $user1 = new kp_testUser(array($tK[0], $tK[1], $tK[2]), array());
         $user2 = new kp_testUser(array($tK[0], $tK[1], $tK[2], $tK[3]), array());
         // User Group #2
         $user3 = new kp_testUser(array($tK[4], $tK[5], $tK[6]), array());
         $user4 = new kp_testUser(array($tK[4], $tK[5], $tK[6]), array());
         // Get the recommendation from the recommender
         $user1->recommender->run(1, 1);
         // Get the recommendation from the lib function
         $posts = kp_getRecommendedWP_Posts(1, $user1->ipAddress, $user1->userAgent);
         $test = $user1->recommender->posts[0]->post_id == $posts[0]->post_id;
         $user1->deleteVisitData();
         $user2->deleteVisitData();
         $user3->deleteVisitData();
         $user4->deleteVisitData();
         $testData->deleteAllTestPosts();
     } catch (Exception $e) {
         $test = false;
     }
     $testObj = new kp_test("Test 8", $test, "results from recommendation function match results from recommendation engine", "results from recommendation function do not match results from recommendation engine");
     $testObj->render();
     kp_resetVisitData();
 }
 function test4()
 {
     $test = true;
     // Prepare the test data
     $testData = new kp_testData();
     $testPostIDs = $testData->insertTestPosts(3, "post");
     $testPageIDs = $testData->insertTestPosts(3, "page");
     $postKeys = array_keys($testPostIDs);
     $pageKeys = array_keys($testPageIDs);
     $user1 = new kp_testUser(array($postKeys[0], $pageKeys[0], $attachmentKeys[0]), array());
     $user2 = new kp_testUser(array($postKeys[0], $postKeys[1], $postKeys[2], $pageKeys[0], $pageKeys[1], $pageKeys[2]), array());
     try {
         // Recommend only posts
         $test4a = true;
         $widgetObj = new kp_widget();
         $widgetInstance = array("posttypes-post" => true, "posttypes-page" => false, "numposts" => 6);
         $widgetResults = $widgetObj->widget(array(), $widgetInstance, false, "", array(), array(), $user1->ipAddress, $user1->userAgent);
         $recommender = $widgetResults["recommender"];
         foreach ($recommender->posts as $recommendedPost) {
             $test4a = $test4a && $recommendedPost->post->post_type == "post";
         }
         $test = $test && $test4a;
         // Recommend only page (don't specify what to do with posts or pages)
         $test4b = true;
         $widgetObj = new kp_widget();
         $widgetInstance = array("posttypes-page" => true, "numposts" => 6);
         $widgetResults = $widgetObj->widget(array(), $widgetInstance, false, "", array(), array(), $user1->ipAddress, $user1->userAgent);
         $recommender = $widgetResults["recommender"];
         foreach ($recommender->posts as $recommendedPost) {
             $test4b = $test4b && $recommendedPost->post->post_type == "page";
         }
         $test = $test && $test4b;
         // Recommend only kp_test_custom and pages but not posts
         $test4c = true;
         $widgetObj = new kp_widget();
         $widgetInstance = array("posttypes-post" => true, "posttypes-page" => true, "numposts" => 10);
         $widgetResults = $widgetObj->widget(array(), $widgetInstance, false, "", array(), array(), $user1->ipAddress, $user1->userAgent);
         $recommender = $widgetResults["recommender"];
         foreach ($recommender->posts as $recommendedPost) {
             $test4c = $test4c && ($recommendedPost->post->post_type == "post" || $recommendedPost->post->post_type == "page");
         }
         $test = $test && $test4c;
         // Don't set any post types, default to all post types
         $test4d = true;
         $widgetObj = new kp_widget();
         $widgetInstance = array("numposts" => 10);
         $widgetResults = $widgetObj->widget(array(), $widgetInstance, false, "", array(), array(), $user1->ipAddress, $user1->userAgent);
         $recommender = $widgetResults["recommender"];
         foreach ($recommender->posts as $recommendedPost) {
             $test4d = $test4d && ($recommendedPost->post->post_type == "post" || $recommendedPost->post->post_type == "page");
         }
         $test = $test && $test4d;
     } catch (Exception $e) {
     }
     // Remove the test data
     $user1->deleteVisitData();
     $user2->deleteVisitData();
     $testData->deleteAllTestPosts();
     $testObj = new kp_test("Test 4", $test, "kp_widget passed different post types tests", "kp_widget failed different post types tests");
     $testObj->render();
 }